Java 生成随机验证码
2007-10-12 15:20
337 查看
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;
/**
* CodeImageGenerator.java
*
* @author <a href="mailto:eroclu@gmail.com">Andy Lu</a>
* @version 1.0
*/
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);
}
}
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;
/**
* CodeImageGenerator.java
*
* @author <a href="mailto:eroclu@gmail.com">Andy Lu</a>
* @version 1.0
*/
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);
}
}
相关文章推荐
- JAVA生成随机验证码图片
- java验证码中的数字、字母、汉字如何随机生成
- Java 生成6位随机验证码
- JAVA 小功能 随机生成图形验证码
- Java 随机生成六位数验证码过程(含大小写字母及数字)
- java随机验证码的生成
- (java)简单的生成随机验证码
- Java生成随机验证码
- Java 随机生成六位数验证码
- Java随机生成字母数字组合的验证码
- 利用struts生成随机验证码(JAVA)
- Java_随机生成4位验证码
- Java随机生成验证码图片,并且保存到文件系统中
- 使用java代码生成随机验证码
- Java获取随机数生成随机字符串用于验证码等之类的工具 (未测试)
- Java随机生成常用汉字验证码
- Java随机生成验证码图片
- Java生成随机验证码图片并进行Base64编码
- java如何随机生成6位数的验证码
- Java随机生成验证码,并且转化成图片