zoukankan      html  css  js  c++  java
  • 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();
        }
    }
    

    运行之后生成的图片:


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

  • 相关阅读:
    php基础
    MYSQL 常用函数
    MYSQL 练习题
    MYSQL 查询
    MYSQL:增删改
    隐藏导航
    分层导航
    图片轮播!
    你帅不帅?
    PHP 流程
  • 原文地址:https://www.cnblogs.com/duzhentong/p/8576523.html
Copyright © 2011-2022 走看看