java自动生成验证码图片,图片验证码的实现
目的:
防止恶意表单注册
生成验证码图片
1、定义宽高
int width=100
int height=502,使用图片在内存中生成图片
BufferedImage=新的buffered image(宽度,高度,BufferedImage .TYPE _ INT _ RGB);3、绘制背景和边框
图形g=图像。获取图形();
g.setColor(颜色。白色);
g.fillRect(0,0,width,height);
g.setColor(颜色。黑色);
g.drawRect(0,0,width - 1,height-1);(免费学习视频教程分享:java视频教程)
4、创建随机字符集和随机数对象
//字符集
string str= abcdefghijklmnopqrstuvwxyzabcdefgjijklmno qrstuvwxyz ;
//随机数
Random ran=new Random();5、创建随机颜色生成方法
私有颜色getRandomColor(Random random) {
//获取随机颜色
int colorIndex=random。nextint(3);
开关(颜色索引){
案例0:
返回颜色。蓝色;
案例1:
返回颜色。绿色;
案例二:
返回颜色。红色;
案例三:
返回颜色。黄色;
默认值:
返回颜色。洋红色;
}
}6、绘制验证码字符
//绘制验证码
for(int I=0;I 4;i ) {
//获取随机字符
int index=ran。nextint(字符串。length());
char ch=str。charat(指数);
//获取随机色
color random color=getRandomColor(ran);
g。设定颜色(随机颜色);
//设置字体
字体font=新字体(宋体,字体。粗体,高度/2);
g.setFont(字体);
//写入验证码
g.drawString(ch ,(i==0)?宽度/4 * i 2:宽度/4 * i,高度-高度/4);
}7、绘制干扰线
//干扰线
for(int I=0;i 10i ) {
int x1=ran。nextint(宽度);
int x2=ran.nextInt(宽度);
int y1=ran。nextint(高度);
int y2=ran。nextint(高度);
color random color=getRandomColor(ran);
g。设定颜色(随机颜色);
g。画线(x1,x2,y1,y2);
}8、使用后台以流输出图片
ImageIO.write(image, jpg ,resp。获取输出流());
写爬虫互联网协议(互联网协议)被封了怎么解决?立即使用
实现刷新效果
1、新建超文本标记语言页面
2、使用图片标签实现图片展示
img id=识别代码 src=识别代码
a id=refesh href= 看不清,换一张/a3,使用射流研究…实现刷新效果
//点击图片时
var img=文档。getelementbyid( identcode );
img.onclick=function (){
refesh();
}
//点击连接时
var a=文档。getelementbyid( refesh );
a.onclick=function (){
refesh();
//返回错误的防止a标签默认超链接行为
返回错误的
}
函数refesh() {
/**
* 由于路径相同时浏览器会自动调用缓存中的图片
* 所以在连接后加时间戳解决此问题
*/
var日期=新日期()。getTime();
img.src=identcode?日期;
}最终效果图:
相关文章教程推荐:java入门教程以上就是爪哇岛实现动态图片验证码的详细内容,更多请关注我们其它相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。