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);
}
}
作者:Wendy | 分类:资源备份 | 浏览:1098 | 评论:0