生成图片验证码

 1  package util;
 2  
 3 import javax.imageio.ImageIO;
 4 import java.awt.*;
 5 import java.awt.image.BufferedImage;
 6 import java.io.File;
 7 import java.io.IOException;
 8 import java.util.Random;
 9  
10 public class image {
11     public static int[] ran() {
12         //设置图片宽度和高度
13         int width = 150;
14         int height = 60;
15         //干扰线条数
16         int lines = 10;
17 //        验证码数组
18         int[] random = new int[4];
19         Random r = new Random();
20         BufferedImage b = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
21         Graphics g = b.getGraphics();
22         g.setFont(new Font("宋体", Font.BOLD, 30));
23         for (int i = 0; i < 4; i++) {
24             int number = r.nextInt(10);
25             random[i] = number;
26             int y = 10+r.nextInt(40);// 10~40范围内的一个整数,作为y坐标
27             //随机颜色,RGB模式
28             Color c = new Color(r.nextInt(255), r.nextInt(255), r.nextInt(255));
29             g.setColor(c);
30 //            g.drawString("" + a, 5 + i * width / 4, y);
31             //写验证码
32             g.drawString(Integer.toString(number), 5 + i * width / 4, y);
33         }
34         for (int i = 0; i < lines; i++) {
35             //设置干扰线颜色
36             Color c = new Color(r.nextInt(255), r.nextInt(255), r.nextInt(255));
37             g.setColor(c);
38             g.drawLine(r.nextInt(width), r.nextInt(height), r.nextInt(width), r.nextInt(height));
39         }
40         try {
41             //清空缓冲
42             g.dispose();
43             //向文件中写入
44             ImageIO.write(b, "jpg", new File("E:\IntelliJ IDEA\mail\web\imagecode\test.jpg"));
45         } catch (IOException e) {
46             e.printStackTrace();
47         }
48         return random;
49     }
50  
51     //测试
52     public static void main(String[] args) {
53         ran();
54     }
55 } 
原文地址:https://www.cnblogs.com/EveningWind/p/9838148.html