• Java生成图片验证码


    在日常我们在登录或者注册的时候,网页上会出现验证码让我们填写,其实利用jdk提供给我们的工具类完全可以模拟出来一个生成验证码图片的功能。

    package util;
    
    import javax.imageio.ImageIO;
    import java.awt.*;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.IOException;
    import java.util.Random;
    
    public class image {
        public static int[] ran() {
            //设置图片宽度和高度
            int width = 150;
            int height = 60;
            //干扰线条数
            int lines = 10;
    //        验证码数组
            int[] random = new int[4];
            Random r = new Random();
            BufferedImage b = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
            Graphics g = b.getGraphics();
            g.setFont(new Font("宋体", Font.BOLD, 30));
            for (int i = 0; i < 4; i++) {
                int number = r.nextInt(10);
                random[i] = number;
                int y = 10+r.nextInt(40);// 10~40范围内的一个整数,作为y坐标
                //随机颜色,RGB模式
                Color c = new Color(r.nextInt(255), r.nextInt(255), r.nextInt(255));
                g.setColor(c);
    //            g.drawString("" + a, 5 + i * width / 4, y);
                //写验证码
                g.drawString(Integer.toString(number), 5 + i * width / 4, y);
            }
            for (int i = 0; i < lines; i++) {
                //设置干扰线颜色
                Color c = new Color(r.nextInt(255), r.nextInt(255), r.nextInt(255));
                g.setColor(c);
                g.drawLine(r.nextInt(width), r.nextInt(height), r.nextInt(width), r.nextInt(height));
            }
            try {
                //清空缓冲
                g.dispose();
                //向文件中写入
                ImageIO.write(b, "jpg", new File("E:\IntelliJ IDEA\mail\web\imagecode\test.jpg"));
            } catch (IOException e) {
                e.printStackTrace();
            }
            return random;
        }
    
        //测试
        public static void main(String[] args) {
            ran();
        }
    }
    

    运行之后生成的图片:


    这样我们在方法中用一个数组存了四位的验证码,在后台判断用户输入的和数组中的元素是否一致,就可以实现验证了。

  • 相关阅读:
    input上传mp3格式文件,预览并且获取时间
    jquery 页面input上传图后显示
    将String类型的字符串拼接成以逗号分隔的字符输出
    layui select多选下拉显示 以及回显
    input输入框只能输入数字和英文逗号
    电脑开机右下角有小金锁,并且提示一分钟后重启电脑
    修改tomcat控制台的标题
    VC防止程序被多次运行 互斥体方法
    VC中遍历进程并获取进程信息
    VC中遍历目标进程中的模块
  • 原文地址:https://www.cnblogs.com/duzhentong/p/8576523.html
Copyright © 2020-2023  润新知