01
2006
12

Java 生成随机验证码

import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io.File; import java.util.Random; import javax.imageio.ImageIO; public final class CodeImageGenerator { private final static int DEF_WIDTH = 60; private final static int DEF_HEIGHT = 20; private String code; private int width; private int height; private BufferedImage image; public CodeImageGenerator() { this(DEF_WIDTH, DEF_HEIGHT); } public CodeImageGenerator(int width, int height) { this.width = width; this.height = height; generateCodeImage(); } private void generateCodeImage() { // create the image image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); Graphics g = image.getGraphics(); // set the background color g.setColor(new Color(0xDCDCDC)); g.fillRect(0, 0, width, height); // draw the border g.setColor(Color.black); g.drawRect(0, 0, width - 1, height - 1); // set the font g.setFont(new Font("Times New Roman", Font.PLAIN, 18)); // create a random instance to generate the codes Random random = new Random(); // make some confusion for (int i = 0; i < 50; i++) { int x = random.nextInt(width); int y = random.nextInt(height); g.drawOval(x, y, 0, 0); } // generate a random code for (int i = 0; i < 4; i++) { String rand = String.valueOf(random.nextInt(10)); code += rand; g.drawString(rand, 13*i+6, 16); } g.dispose(); } public BufferedImage getImage() { return image; } public String getCode() { return code; } public static void main(String[] args) throws Exception { File imgFile = new File("codeImage.jpeg"); CodeImageGenerator cig = new CodeImageGenerator(); ImageIO.write(cig.getImage(), "JPEG", imgFile); } }
« 上一篇 下一篇 »