Java 验证码生成代码,生成样式
依赖:生成随机的字符类
生成的图片:
源代码:
/**
* 生成验证码
*
* @author zgcwkj
* @since 2019-01-11
*/
public class ValidateCode {
private String validateCode = "";
private String validateColor = "FFFFFF";
/**
* 实例验证码
*/
public ValidateCode() {
validateCode = new RandomCode(true, true, false).getRandom(4);
}
/**
* 实例验证码
*/
public ValidateCode(int length) {
validateCode = new RandomCode(true, true, false).getRandom(length);
}
/**
* 获取验证码
*/
public String GetValidate() {
return validateCode;
}
/**
* 背景颜色 不传参数时为随机
*/
public void GetColor() {
validateColor = new RandomCode(true, false, false).getRandom(6);
}
/**
* 背景颜色 不传参数时为随机
*/
public void GetColor(String color) {
validateColor = color;
}
/**
* 获取生成的图片
*
* @param RandomText 随机码
* @return
*/
public BufferedImage getImage() {
// 创建缓存
BufferedImage bi = new BufferedImage(validateCode.length() * 20, 35, BufferedImage.TYPE_INT_RGB);
// 获得画布
Graphics g = bi.getGraphics();
// 设置颜色
g.setColor(new Color(Integer.parseInt(validateColor, 16)));
// 填充区域
g.fillRect(0, 0, bi.getWidth(), bi.getHeight());
// 设置颜色
g.setColor(Color.lightGray);
// 画图片的背景噪音线
for (int i = 0; i < 12; i++) {
int x1 = new Random().nextInt(bi.getWidth());
int y1 = new Random().nextInt(bi.getHeight());
int x2 = new Random().nextInt(bi.getWidth());
int y2 = new Random().nextInt(bi.getHeight());
g.drawLine(x1, y1, x2, y2);
}
Graphics2D g2d = (Graphics2D) g;// 转换为Graphics2D类型
Font font = new Font("Georgia", Font.BOLD, 25); // 创建字体对象
g2d.setFont(font); // 设置字体
// 创建循环渐变的GraphientPaint对象
GradientPaint paint = new GradientPaint(0, 0, Color.BLUE, bi.getWidth(), bi.getHeight(), Color.GRAY, true);
g2d.setPaint(paint);// 设置渐变
g2d.drawString(validateCode, 5, (bi.getHeight() + 10) / 2); // 绘制文本
// 设置颜色
g.setColor(Color.WHITE);
// 画图片的前景噪音点
for (int i = 0; i < 10; i++) {
int x1 = new Random().nextInt(bi.getWidth());
int y1 = new Random().nextInt(bi.getHeight());
int x2 = new Random().nextInt(bi.getWidth());
int y2 = new Random().nextInt(bi.getHeight());
g.drawLine(x1, y1, x2, y2);
}
return bi;
}
}
使用:
ValidateCode validateCode = new ValidateCode(6);
String random = validateCode.GetValidate();
BufferedImage image = validateCode.getImage();
源码下载:ValidateCode.java
版权属于:zgcwkj
本文链接:https://zgcwkj.com/archives/78.html
转载声明:请注明本文章的标题及内容的出处和声明,谢谢
评论已关闭