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 }