以下是一个简单的 Java 验证码实现示例:
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.util.Random;
import javax.imageio.ImageIO;
public class CaptchaGenerator {
public static BufferedImage generateCaptchaImage(String captchaCode) {
int width = 200;
int height = 50;
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics g = image.getGraphics();
// 设置背景颜色
g.setColor(Color.WHITE);
g.fillRect(0, 0, width, height);
// 设置边框
g.setColor(Color.BLACK);
g.drawRect(0, 0, width - 1, height - 1);
// 设置字体
g.setFont(new Font("Times New Roman", Font.BOLD, 40));
// 绘制验证码
g.setColor(Color.BLACK);
g.drawString(captchaCode, 50, 40);
// 绘制噪点
Random rnd = new Random();
for (int i = 0; i < 100; i++) {
int x = rnd.nextInt(width);
int y = rnd.nextInt(height);
g.setColor(new Color(rnd.nextInt(256), rnd.nextInt(256), rnd.nextInt(256)));
g.drawLine(x, y, x, y);
}
g.dispose();
return image;
}
}
这个方法接受一个字符串作为验证码文本,并返回一个绘制了验证码文本和噪点的 BufferedImage 对象。你可以将其保存到文件或将其显示到网页中。以下是一个使用示例:
public static void main(String[] args) throws Exception {
String captchaCode = generateRandomCode();
BufferedImage image = CaptchaGenerator.generateCaptchaImage(captchaCode);
// 保存生成的验证码图片
ImageIO.write(image, "JPEG", new File("captcha.jpg"));
// 显示生成的验证码图片
JFrame frame = new JFrame();
JLabel label = new JLabel(new ImageIcon(image));
frame.getContentPane().add(label);
frame.pack();
frame.setVisible(true);
}
在这里,我们首先生成随机的验证码文本,然后使用 CaptchaGenerator 类生成验证码图片。最后,我们将图片保存到文件和显示到 JFrame 中。
效果如下: