java生成随机图片验证码
本文实例为大家分享了java生成随机图片验证码的具体代码,供大家参考,具体内容如下
效果如图
前台html代码
验证码:
注释:此处的src="http://dh.wk163.com/qos/dog/getVerifyCodeImg" SpringBoot页面展示Thymeleaf的语法
前台js代码
functionchange(){
varverifyCode=document.getElementById("verifyCodeImg");
verifyCode.src="http://dh.wk163.com/qos/dog/getVerifyCodeImg?time="+Math.random(1000);
}
/*-*/
/qos/dog/这里的路径是需要换成自己的哦
验证代码,在controller里面新建一个util文件夹,然后放入VerifyCodeUtil.java
代码如下
packagecom.paladin.qos.util;
importjavax.imageio.ImageIO;
importjava.awt.*;
importjava.awt.image.BufferedImage;
importjava.io.ByteArrayOutputStream;
importjava.io.IOException;
importjava.util.Random;
publicclassVerifyCodeUtil{
privatestaticfinalRandomrandom=newRandom();
privatestaticfinalString[]fontNames={"宋体","华文楷体","黑体","Georgia","微软雅黑","楷体_GB2312"};
publicstaticStringdrawImage(ByteArrayOutputStreamoutput){
Stringcode="";
intwidth=50;
intheight=25;
//创建图片缓冲区
BufferedImagebi=newBufferedImage(width,height,BufferedImage.TYPE_3BYTE_BGR);
Graphics2Dg=bi.createGraphics();
//设置背景颜色
g.setBackground(newColor(255,255,255));
g.clearRect(0,0,width,height);
StringBuilderstringBuilder=newStringBuilder();
//这里只画入四个字符
for(inti=0;i<4;i++){
Strings=randomChar()+"";//随机生成字符,因为只有画字符串的方法,没有画字符的方法,所以需要将字符变成字符串再画
stringBuilder.append(s);//添加到StringBuilder里面
floatx=i*1.0F*width/4;//定义字符的x坐标
g.setFont(randomFont());//设置字体,随机
g.setColor(randomColor());//设置颜色,随机
g.drawString(s,x,height-5);
}
code=stringBuilder.toString();//获取验证码字符串
//定义干扰线
//定义干扰线的数量(3-5条)intnum=random.nextInt(max)%(max-min+1)+min;
intnum=random.nextInt(5)%3+3;
Graphics2Dgraphics=(Graphics2D)bi.getGraphics();
for(inti=0;i
最后,在controller里面引用
@RequestMapping("/getVerifyCodeImg")
@ResponseBody
publicvoidgetVerifyCodeImg(HttpServletResponseresponse,HttpSessionsession){
ByteArrayOutputStreamoutput=newByteArrayOutputStream();
Stringcode=VerifyCodeUtil.drawImage(output);
//将验证码文本直接存放到session中
session.setAttribute("verifyCode",code);
try{
ServletOutputStreamout=response.getOutputStream();
output.writeTo(out);
}catch(IOExceptione){
e.printStackTrace();
}
}
更多关于验证码的文章请点击查看:《java验证码》
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。