图片验证码

来源:互联网 发布:淘宝男士休闲鞋2015款 编辑:程序博客网 时间:2024/05/27 00:42

简单的java图片验证码的生成

代码:

public class SecurityCode {public static void main(String[] args) throws IOException {    //定义两个变量,用来设置生成的验证码的长和宽    int width = 120;    int height = 40;    // 要画出验证码,就需要先创建一个画布    BufferedImage bi = new BufferedImage(width, height,            BufferedImage.TYPE_INT_RGB);    // 创建一个画笔对象    Graphics2D g = bi.createGraphics();    // 给画笔设置颜色    //g.setColor(Color.WHITE);    g.setColor(new Color(255,255,255));    // 填充图形,将画布的背景填充为白色    g.fillRect(0, 0, width, height);    // 给画笔设置为灰色    g.setColor(Color.GRAY);    //给画布画上灰色的边框    g.drawRect(0, 0, width - 1, height - 1);    //创建一个随机数生成器    Random r = new Random();    // 画干扰线条    for (int i = 0; i < 200; i++) {        //修改画笔颜色,让每一个线条的颜色都是随机的        g.setColor(new Color(r.nextInt(100)+150, r.nextInt(100)+150, r.nextInt(100)+150));        //画具体的干扰线        g.drawLine(r.nextInt(width), r.nextInt(height), r.nextInt(width),                r.nextInt(height));    }    //设置画笔的输出字体    g.setFont(new Font("微软雅黑", Font.ITALIC, 20));    //设置要写出的字符的范围    String str = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";    //通过循环随机写出字符    for (int i = 1; i < 5; i++) {        //修改画笔颜色,让每一个字符的颜色都是随机的        g.setColor(new Color(r.nextInt(150), r.nextInt(150), r.nextInt(150)));        //在画布上输出字符        g.drawString(str.charAt(r.nextInt(str.length())) + "", 20 * i, 25);    }    // 将这个画布输出到文件中    ImageIO.write(bi, "JPG", new File("F:\\验证码.jpg"));}}
1 0
原创粉丝点击