用JAVA代码生成验证码图片

用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));
        
        
    }

}

上面是源码我已经整理成工具类的样子。这样方便同学们拿去学习参考用!

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值