全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

使用java生成字母验证码

本文实例为大家分享了java生成字母验证码的具体代码,供大家参考,具体内容如下

import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Random;

import javax.imageio.ImageIO;


public class VerifyCode {
  //图片宽高
  private int w=70;
  private int h=35;
  private Random r=new Random();
  private String[] fontNames={"宋体","华文楷体","黑体","微软雅黑","楷体_GB2312"};
  private String codes="234567890qwertyuipasdfghjkzxcvbnmQWERTYUIPASDFGHJKZXCVBNM";
  private Color bgColor=new Color(255,255,255);
  private String text;
  //生成随机颜色
  private Color randomColor(){
    int red=r.nextInt(150);
    int green=r.nextInt(150);
    int blue=r.nextInt(150);
    return new Color(red, green, blue);
    }
  //生成随机字体
  private Font randomFont(){
    int index=r.nextInt(fontNames.length);
    String fontName=fontNames[index];
    int style=r.nextInt(4);//0 无 1 粗体 2 斜体 3 粗+斜
    int size=r.nextInt(5)+24; //生成随机字号 24~28
    return new Font(fontName, style, size);
  }
  //干扰线
  private void drowLine(BufferedImage image){
    //生成4条干扰线
    int num=4;
    Graphics2D bi=(Graphics2D) image.getGraphics();
    for (int i = 0; i < num; i++) {
      int x1=r.nextInt(w);
      int x2=r.nextInt(w);
      int y1=r.nextInt(h);
      int y2=r.nextInt(h);
      bi.setStroke(new BasicStroke(1.5F));
      bi.setColor(Color.BLUE);//干扰线色
      bi.drawLine(x1,y1,x2,y2);
    }
  }
  //随机生成一个字符
  private char randomChar(){
    int index=r.nextInt(codes.length());
    return codes.charAt(index);
  }
  //图片缓冲区
  private BufferedImage createImage(){
    BufferedImage image=new BufferedImage(w, h, BufferedImage.TYPE_INT_BGR);
    Graphics2D bi=(Graphics2D) image.getGraphics();
    bi.setColor(this.bgColor);
    bi.fillRect(0, 0, w, h);
    return image;
  }
  //生成图片
  public BufferedImage getImage(){
    BufferedImage image=createImage();
    Graphics2D bi=(Graphics2D) image.getGraphics();
    StringBuilder sb=new StringBuilder();
    for (int i = 0; i <4; i++) {
      String string=randomChar()+"";
      sb.append(string);
      //每个字符占图片1/4宽
      float x=i*1.0F*w/4;
      //随机字体格式
      bi.setFont(randomFont());
      bi.setColor(randomColor());
      //把字写在图片适当处(h-6指图片距底部6个高度)
      bi.drawString(string, x, h-6);
    }
    this.text=sb.toString();
    drowLine(image);
    return image;
  }
  //返回得到的字体
  public String getText(){
    return text;
  }
  //把图片写入指定位置
  public static void output(BufferedImage image,OutputStream out){
    try {
      ImageIO.write(image, "JPG", out);
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# java生成字母验证码  # java生成验证码  # java验证码  # 基于JAVA的短信验证码api调用代码实例  # java验证码生成具体代码  # java生成图片验证码实例代码  # Java版仿QQ验证码风格图片验证码  # Java仿12306图片验证码  # javaWeb使用Kaptcha组件生成验证码  # Java实现图片验证码具体代码  # java生成图片验证码示例代码  # java登录验证码实现代码  # java 图片验证码的实现代码  # 微软  # 验证码  # 大家分享  # 写在  # 具体内容  # 大家多多  # 宋体  # 粗体  # String  # fontNames  # 华文  # VerifyCode  # public  # ImageIO  # int  # private  # text  # randomColor  # nextInt  # red 


相关文章: 如何实现建站之星域名转发设置?  免费网站制作appp,免费制作app哪个平台好?  大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?  如何在建站之星绑定自定义域名?  太平洋网站制作公司,网络用语太平洋是什么意思?  如何在服务器上三步完成建站并提升流量?  存储型VPS适合搭建中小型网站吗?  开源网站制作软件,开源网站什么意思?  上海网站制作网站建设公司,建筑电工证网上查询系统入口?  如何在阿里云通过域名搭建网站?  高端建站三要素:定制模板、企业官网与响应式设计优化  网站制作培训多少钱一个月,网站优化seo培训课程有哪些?  宝塔新建站点为何无法访问?如何排查?  音响网站制作视频教程,隆霸音响官方网站?  家具网站制作软件,家具厂怎么跑业务?  可靠的网站设计制作软件,做网站设计需要什么样的电脑配置?  学校为何禁止电信移动建设网站?  如何在建站宝盒中设置产品搜索功能?  巅云智能建站系统:可视化拖拽+多端适配+免费模板一键生成  如何通过宝塔面板实现本地网站访问?  沈阳制作网站公司排名,沈阳装饰协会官方网站?  如何解决VPS建站LNMP环境配置常见问题?  如何通过二级域名建站提升品牌影响力?  网站设计制作企业有哪些,抖音官网主页怎么设置?  建站主机如何选?性能与价格怎样平衡?  官网自助建站系统:SEO优化+多语言支持,快速搭建专业网站  建站之星免费模板:自助建站系统与智能响应式一键生成  建站之星后台管理:高效配置与模板优化提升用户体验  山东云建站价格为何差异显著?  建站VPS推荐:2025年高性能服务器配置指南  建站之星安装提示数据库无法连接如何解决?  ,怎么在广州志愿者网站注册?  如何登录建站主机?访问步骤全解析  香港服务器租用每月最低只需15元?  Swift开发中switch语句值绑定模式  建站之星各版本价格是多少?  宁波自助建站系统如何快速打造专业企业网站?  模具网站制作流程,如何找模具客户?  北京制作网站的公司排名,北京三快科技有限公司是做什么?北京三快科技?  高性价比服务器租赁——企业级配置与24小时运维服务  C++如何编写函数模板?(泛型编程入门)  如何用IIS7快速搭建并优化网站站点?  专业网站制作服务公司,有哪些网站可以免费发布招聘信息?  如何选择高效便捷的WAP商城建站系统?  建站之星如何配置系统实现高效建站?  网站制作的方法有哪些,如何将自己制作的网站发布到网上?  网站制作与设计教程,如何制作一个企业网站,建设网站的基本步骤有哪些?  活动邀请函制作网站有哪些,活动邀请函文案?  网站制作企业,网站的banner和导航栏是指什么?  如何在Golang中使用replace替换模块_指定本地或远程路径 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。