package com.ssm.util;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.Line2D;
import java.awt.image.BufferedImage;
import java.util.HashMap;
import java.util.Map;
import java.util.Random;
import org.springframework.stereotype.Component;
/**
* @ClassName: CheckCodeGenerator
* @Description: 验证码图形
* @author: Administrator
* @date: 2018年1月4日 下午3:32:28
*
*/
@Component
public class CheckCodeGenerator {
private static char[] codeSequence = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' };
private static int width = 80;// 生成验证码的宽度
private static int height = 35;// 生成验证码的高度
private static int codeCount = 4;// 验证码个数
private static int lineCounr = 20;
private static Font font;// 验证码字体样式
static {
font = new Font("楷体", Font.BOLD|Font.ITALIC, 25);
}
/**
* 获取验证码
* @return
*/
public Map<String, Object> generlateCheckCode() {
// 存储验证码
StringBuilder codeBuilder = new StringBuilder();
Random random = new Random();
// 创建 BufferedImage 对象
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_BGR);
// 创建Grapchics2D对象
Graphics graphics = image.getGraphics();
Graphics2D graphics2d = (Graphics2D) graphics;
// 设置图片
graphics.setColor(Color.white);
graphics.fillRect(1, 1, width - 2, height - 2);
graphics.setFont(font);
graphics.setColor(Color.gray);
// 绘制颜色和位置全部为随机产生的线条,该线条为2f
for (int i = 1; i <= lineCounr; i++) {
int x = random.nextInt(width - 1);
int y = random.nextInt(height - 1);
int x1 = random.nextInt(width - 1);
int y1 = random.nextInt(height - 1);
Line2D line2d = new Line2D.Double(x, y, x1, y1);
graphics2d.draw(line2d);
}
// 设置验证码中的内容
for (int i = 0; i < codeCount; i++) {
graphics.setColor(getRandColor());
char c = codeSequence[random.nextInt(codeSequence.length - 1)];
codeBuilder.append(c);
graphics2d.drawString(c + "", 10 + 15 * i, 25);
}
Map<String, Object> checkCode = new HashMap<String,Object>();
checkCode.put("checkCodeString", codeBuilder.toString());
checkCode.put("checkCodeImage", image);
return checkCode;
}
/**
* 随机生成颜色
*
* @return
*/
private Color getRandColor() {
Random random = new Random();
int r, g, b;
r = random.nextInt(255);
g = random.nextInt(255);
b = random.nextInt(255);
return new Color(r, g, b);
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
最新稳定版 SSM 框架整合

共48个文件
xml:16个
class:6个
java:6个


温馨提示
框架内有详细注释,简单易懂, 数据库连接池 阿里的 druid。Druid在监控、可扩展性、稳定性和性能方面都有明显的优势,支持并发,在此基础上可二次开发(OA、ERP、CRM ,医疗管理、金融、网站后台)等管理系统, <!-- spring版本号 --> <spring.version>4.3.9.RELEASE</spring.version> <!-- mybatis版本号 --> <mybatis.version>3.4.4</mybatis.version> <!-- log4j日志文件管理包版本 --> <slf4j.version>1.7.7</slf4j.version> <log4j.version>1.2.17</log4j.version> <!--junit 测试包版本号 --> <junit.version>4.12</junit.version> <!--jackson JSON包版本号 --> <jackson.version>2.8.3</jackson.version>
资源推荐
资源详情
资源评论




















收起资源包目录































































































共 48 条
- 1
资源评论

- u0102123692018-08-12对我没什么用
- tannafe2018-12-07这资源就是一个刚学会SSM的新手搞的,非常简单,最初级水平
- vincent_585982019-05-29还行吧。。但参考意义不大。不是最新的

点滴之水终成海
- 粉丝: 2
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 财务信息化:促进中小企业发展的方法探究.docx
- 智能家居—可能性研究分析评测报告.doc
- 互联网+一站式校园创业服务探索.docx
- 项目管理中的人力资源管理和沟通管理.docx
- 云计算网络环境下的信息安全问题研究.docx
- 大学设计箱体注塑模CADCAM方案一.doc
- 大数据下的医院财务信息共享研究.docx
- C语言程序设计算法资料.ppt
- PLC控制机械手95153.doc
- 学生成绩管理系统数据结构程序设计实验报告2.doc
- 网络工程第一章ppt.ppt
- 学校、幼儿园网络视频监控方案-教育文博.docx
- 大模型提示词优化器,让大模型根据测试结果进行反思生成优化建议,并结合用户要求进行提示词优化
- 单片机的按摩机的控制研究与设计开发.doc
- 伪均匀随机数的计算机检验.docx
- 大模型提示词优化器:依测试反思提建议并按用户要求优化
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
