用JAVA代码生成验证码图片
先给大家看下 效果图片
然后我还写了一个源码。里面定义了一个方法用来生成验证码的还有一个main方法用来测试
package testWeb13;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.Random;
import java.util.Scanner;
import javax.imageio.ImageIO;
public class CodePicUitl {
/**
*
* 这个main方法就是用来测试的
* @auther 蒋鑫
*/
public static void main(String[] args) {
try {
Scanner input=new Scanner(System.in);
System.out.println("请输入您要存放验证码的正确地址加上文件名:");
//实例 F:\1.png 这个文件格式在下面 ImageIO.write(bi,"PNG",new File(path)); 那里可以设置的
String path=input.next();
generate(path);
System.out.println("成功!");
} catch (IOException e) {
System.out.println("失败!");
e.printStackTrace();
}
}
public static void generate(String path) throws IOException{
BufferedImage bi = new BufferedImage(68,22,BufferedImage.TYPE_INT_RGB);
Graphics g = bi.getGraphics();
Color c = new Color(200,150,255);
g.setColor(c);//背景颜色
g.fillRect(0, 0, 68, 22);//背景框
//字母数字组合:
char[] ch = "ABCDEFGHIJKLMNOPQRSTUVEXYZ123456789".toCharArray();
Random r = new Random();
int len = ch.length;
int index;
StringBuffer sb = new StringBuffer();
for(int i =0;i<4;i++){
index = r.nextInt(len);//随机获得一个起始位置
g.setColor(new Color(r.nextInt(88),r.nextInt(188),r.nextInt(255)));//给字体一个随机的颜色
g.drawString(ch[index]+"", (i*15)+3, 18);
sb.append(ch[index]);
}
// request.getSession().setAttribute("piccode", sb.toString());//将生产的验证码保存下来,以便之后的检验输入是否一致
ImageIO.write(bi,"PNG",new File(path));
}
}
上面是源码我已经整理成工具类的样子。这样方便同学们拿去学习参考用!