java图形验证码工具类
来源:互联网 发布:企业名录搜索软件 编辑:程序博客网 时间:2024/05/18 11:50
/*** @ClassName: ValidateCodeHelper* @Description: 关于java图形验证码的工具类* 这是一个验证码工具类,直接复制粘贴即可用* @author 没有水的鱼* @date 2016年10月10日10:43:48 * @version 1.0 */public class ValidateCodeHelper{ /* * 随机数(去除0、o这种相似字符) */ private static Random random = new Random(); /* * 随机字符字典 */ private static final char[] CHARS = { '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' }; /* * 获取4位随机数(修改循环次数,即可修改生成的随机数位数) */ public static String getRandomString() { StringBuffer buffer = new StringBuffer(); for(int i = 0; i < 4; i++) { buffer.append(CHARS[random.nextInt(CHARS.length)]); } return buffer.toString(); } /* * 获取随机数颜色 */ private static Color getRandomColor() { return new Color(random.nextInt(255),random.nextInt(255), random.nextInt(255)); } /* * 返回某颜色的反色 */ private static Color getReverseColor(Color c) { return new Color(255 - c.getRed(), 255 - c.getGreen(), 255 - c.getBlue()); } /** * @功能描述 获取验证码功能 * @开发人员 没有水的鱼 * @方法参数 需要生成的随机数 * @开发时间 2016年9月13日11:25:36 * @修改时间 2016年9月13日11:30:39 * @返回值 CommonResult */ public byte[] generateVerificationCode(String randomString)throws Exception { byte[] be = null; int width = 90; int height = 30; //以下两行Color是随机颜色的,生成的验证码不是美观。// Color color = getRandomColor();// Color reverse = getReverseColor(color); //这里我写了个固定背景颜色的Color,个人感觉还可以. Color color = new Color(255,255,255); Color reverse = new Color(42,145,0); BufferedImage bi = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); Graphics2D g = bi.createGraphics(); //消除线条锯齿 g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); //设置字体样式 g.setFont(new Font(Font.DIALOG, Font.PLAIN, 24)); //设置字体颜色 g.setColor(color); //设置边框宽度 g.fillRect(0, 0, width, height); //设置背景色 g.setColor(reverse); //设置验证码在图形当中的位置高低 g.drawString(randomString, 15, 23); //设置干扰线 for (int i = 0; i < 8; i++) { g.setColor(new Color(random.nextInt(256), random.nextInt(256), random.nextInt(256))); //画线 g.drawLine(random.nextInt(70), random.nextInt(40), random.nextInt(100), random.nextInt(30)); } g.dispose(); ByteArrayOutputStream bs = new ByteArrayOutputStream(); ImageOutputStream imOut; imOut = ImageIO.createImageOutputStream(bs); ImageIO.write(bi, "jpg",imOut); InputStream inpitstram= new ByteArrayInputStream(bs.toByteArray()); //由于项目特殊性需要故将InputStream 转换成了byte[]的格式。 be = UsercenterHelper.input2byte(inpitstram); return be; }}
转载请注明出处。
0 0
- java图形验证码生成工具类
- java图形验证码生成工具类
- java图形验证码生成工具类
- java图形验证码生成工具类
- java图形验证码生成工具类
- java图形验证码工具类
- java图形验证码生成工具类
- java图形验证码生成工具类
- 图形验证码生成工具类
- java图形验证码生成工具类及web页面校验验证码
- java图形验证码生成工具类及web页面校验验证码
- java图形验证码生成工具类及web页面校验验证码(转)
- java图形验证码生成工具类及web页面校验验证码
- java图形验证码生成工具类及web页面校验验证码
- 图形验证码生成工具
- Java图形验证码
- JAVA图形验证码
- 图形验证码的java通用类
- 半数集问题
- leaflet中maker添加mouseover事件
- solve: vmware audit:backlog limit exceeded
- wps表格或excel表格怎样转换成为PDF文件
- 有关于cocos js加载网络图片
- java图形验证码工具类
- [数据结构与算法]堆排序 Heap Sort
- 10 个你有可能不知道的Android Studio技巧
- mac 版mybatis-generator eclipse 插件在线安装
- design包8种控件
- leaflet中给maker添加mouseover、mouseout、click
- 2016-Q4目标
- C#继承相关
- JAVA从菜鸟【入门】到新手【实习】一一计算机网络技术