java生成随机图片验证码
本文实例为大家分享了java生成随机图片验证码的具体代码,供大家参考,具体内容如下
效果如图
前台html代码
验证码:
注释:此处的src="http://www.haoziyuan.cc/qos/dog/getVerifyCodeImg" SpringBoot页面展示Thymeleaf的语法
前台js代码
functionchange(){ varverifyCode=document.getElementById("verifyCodeImg"); verifyCode.src="http://www.haoziyuan.cc/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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。