本文实例为大家分享了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小时内与您取得联系。