java 利用 Graphics画验证码带边框
时间: 2024-02-18 11:20:58 浏览: 27
您可以使用Java的Graphics类来绘制带边框的验证码。下面是一个简单的示例代码:
```java
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.util.Random;
public class CaptchaGenerator {
private static final int WIDTH = 120; // 验证码图片宽度
private static final int HEIGHT = 40; // 验证码图片高度
private static final int CODE_LENGTH = 4; // 验证码长度
private static final int BORDER_SIZE = 2; // 边框大小
public static BufferedImage generateCaptcha() {
// 创建验证码图片
BufferedImage captchaImage = new BufferedImage(WIDTH, HEIGHT, BufferedImage.TYPE_INT_RGB);
Graphics graphics = captchaImage.getGraphics();
// 绘制背景
graphics.setColor(Color.WHITE);
graphics.fillRect(0, 0, WIDTH, HEIGHT);
// 绘制边框
graphics.setColor(Color.BLACK);
graphics.fillRect(0, 0, WIDTH, BORDER_SIZE); // 上边框
graphics.fillRect(0, HEIGHT - BORDER_SIZE, WIDTH, BORDER_SIZE); // 下边框
graphics.fillRect(0, 0, BORDER_SIZE, HEIGHT); // 左边框
graphics.fillRect(WIDTH - BORDER_SIZE, 0, BORDER_SIZE, HEIGHT); // 右边框
// 绘制验证码
Random random = new Random();
graphics.setFont(new Font("Arial", Font.BOLD, 24));
StringBuilder captchaCode = new StringBuilder();
for (int i = 0; i < CODE_LENGTH; i++) {
char code = (char) (random.nextInt(26) + 'A'); // 生成随机的大写字母
captchaCode.append(code);
graphics.setColor(new Color(random.nextInt(256), random.nextInt(256), random.nextInt(256)));
graphics.drawString(String.valueOf(code), 20 * i + 10, HEIGHT / 2 + 10);
}
// 绘制干扰线
for (int i = 0; i < 6; i++) {
graphics.setColor(new Color(random.nextInt(256), random.nextInt(256), random.nextInt(256)));
graphics.drawLine(random.nextInt(WIDTH), random.nextInt(HEIGHT), random.nextInt(WIDTH), random.nextInt(HEIGHT));
}
// 关闭Graphics对象
graphics.dispose();
return captchaImage;
}
public static void main(String[] args) {
BufferedImage captchaImage = generateCaptcha();
// 在这里可以将验证码图片保存到文件或者输出到页面
}
}
```
这段代码使用Java的Graphics类创建了一个验证码图片,绘制了一个带边框的验证码。您可以根据需要调整验证码图片的宽度、高度、验证码长度和边框大小。最后,您可以将生成的验证码图片保存到文件或者输出到页面。