package com; 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 Imageyan { public static void main(String[] args) throws IOException { int id = 4; int w = id*50; int h = 80; BufferedImage buf = new BufferedImage(w,h,1); Graphics g = buf.getGraphics(); g.setColor(Color.WHITE); g.fillRect(0,0,w,h); Random ran = new Random(); //设置字 Font font = new Font("宋体",Font.PLAIN,40); g.setFont(font); for(int i = 0;i < id;i++) { Color color = new Color(ran.nextInt(255),ran.nextInt(255),ran.nextInt(255),255); g.setColor(color); String chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"; String str = ""; str = chars.charAt(ran.nextInt(chars.length()))+""; int x = 20 + i * 45; int y = 50; g.drawString(str, x, y); } //添加干扰文字 for(int i = 0;i < id;i++) { Color color = new Color(ran.nextInt(255),ran.nextInt(255),ran.nextInt(255),100); g.setColor(color); String chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"; String str = ""; str = chars.charAt(ran.nextInt(chars.length()))+""; g.drawString(str, ran.nextInt(w),ran.nextInt(h)); } //添加线条 for (int a = 0; a < 30; a++) { Color color = new Color(ran.nextInt(255),ran.nextInt(255),ran.nextInt(255),ran.nextInt(255)); g.setColor(color); g.drawLine(ran.nextInt(w),ran.nextInt(w),ran.nextInt(w),ran.nextInt(w)); } //添加弧线 for (int a = 0; a < 30; a++) { Color color = new Color(ran.nextInt(255),ran.nextInt(255),ran.nextInt(255),ran.nextInt(255)); g.setColor(color); g.drawArc(ran.nextInt(w),ran.nextInt(w),ran.nextInt(w),ran.nextInt(w),ran.nextInt(360),ran.nextInt(360)); } g.dispose(); ImageIO.write(buf,"jpg",new File("d:/img/five.jpg")); } }