java生成验证码工具类
java生成验证码工具类,供大家参考,具体内容如下
packagecom.demo.utils;
importjava.awt.BasicStroke;
importjava.awt.Color;
importjava.awt.Font;
importjava.awt.Graphics2D;
importjava.awt.RenderingHints;
importjava.awt.geom.QuadCurve2D;
importjava.awt.image.BufferedImage;
importjava.io.FileOutputStream;
importjava.io.IOException;
importjava.io.OutputStream;
importjava.util.Random;
importjavax.imageio.ImageIO;
/**
*生成验证码
*@authordongyangyang
*@Date2017/3/1312:31
*@Version1.0
*
*/
publicclassAuthCodeUtils{
privatefinalstaticRandomrandom=newRandom();
//随机字体样式
privatefinalstaticint[]fontStyle={Font.HANGING_BASELINE,Font.ITALIC,Font.LAYOUT_LEFT_TO_RIGHT,Font.LAYOUT_NO_LIMIT_CONTEXT,Font.LAYOUT_NO_START_CONTEXT,
Font.LAYOUT_RIGHT_TO_LEFT,Font.CENTER_BASELINE,Font.PLAIN,Font.ROMAN_BASELINE,Font.TRUETYPE_FONT,Font.TYPE1_FONT,Font.BOLD};
privatefinalstaticString[]font={"Ravie","Forte","Arial","Courier"};
privatefinalstaticint[]xarr={23,24,19,20,21};
privatefinalstaticint[]yarr={20,21,22,23,24,25,16,17,18};
privatefinalstaticint[]font_size={28,29,30,21,22,23,24,27,26,25};
/**
*画随机码图
*@paramout
*@paramwidth
*@paramheight
*@throwsIOException
*/
publicstaticvoiddraw(OutputStreamout,Stringvalue)throwsIOException{
intwidth=100,height=40;
BufferedImagebi=newBufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
Graphics2Dg=(Graphics2D)bi.getGraphics();
g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
g.setColor(randColor(240,255));
g.fillRect(0,0,width,height);
g.drawRect(1,1,width-2,height-2);
for(inti=0;i<10;i++){
g.setColor(randColor(150,250));
g.drawOval(random.nextInt(110),random.nextInt(24),5+random.nextInt(10),5+random.nextInt(10));
}
g.setFont(getFont());
g.setColor(randColor(xarr[(int)(Math.random()*5)],254));
for(inti=0,len=value.length();i255){
fc=255;
}
if(bc>255){
bc=255;
}
intr=fc+random.nextInt(bc-fc);
intg=fc+random.nextInt(bc-fc);
intb=fc+random.nextInt(bc-fc);
returnnewColor(r,g,b);
}
privatestaticchar[]c={'a','b','c','d','e','f','g','h','j','k','m','n','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F',
'G','H','J','K','L','M','N','P','Q','R','S','T','U','V','W','X','Y','Z','1','3','5','6','7','8','9'};
publicstaticStringgetRandom(intsize){
StringBuildersb=newStringBuilder();
for(inti=0;i
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。