• 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();
        }
    }
    

    运行之后生成的图片:


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

  • 相关阅读:
    gThumb 3.1.2 发布,支持 WebP 图像
    航空例行天气预报解析 metaf2xml
    Baruwa 1.1.2 发布,邮件监控系统
    Bisect 1.3 发布,Caml 代码覆盖测试
    MoonScript 0.2.2 发布,基于 Lua 的脚本语言
    Varnish 入门
    快速增量备份程序 DeltaCopy
    恢复模糊的图像 SmartDeblur
    Cairo 1.12.8 发布,向量图形会图库
    iText 5.3.4 发布,Java 的 PDF 开发包
  • 原文地址:https://www.cnblogs.com/duzhentong/p/8576523.html
Copyright © 2020-2023  润新知