验证码生成
来源:互联网 发布:电脑软件证书过期 编辑:程序博客网 时间:2024/06/03 22:40
public class ValidImageUtils { private static String codeChars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";//随机码 private static String url = "H:\\files\\graph";//图片保存的服务器路径 public static ValidImage generateGraph()throws IOException{ // 获得验证码集合的长度 int charsLength = codeChars.length(); // 设置图形验证码的长和宽 int width = 90, height = 30; BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); Graphics g = image.getGraphics(); Random random = new Random(); g.setColor(getRandomColor(180, 250)); g.fillRect(0, 0, width, height); g.setFont(new Font("Times New Roman", Font.ITALIC, height)); g.setColor(getRandomColor(120, 180)); // 用户保存最后随机生成的验证码 StringBuffer validationCode = new StringBuffer(); // 验证码的随机字体 String[] fontNames = {"Times New Roman", "Book antiqua", "Arial"}; // 随机生成4个验证码 for (int i = 0; i < 4; i++) { // 随机设置当前验证码的字符的字体 g.setFont(new Font(fontNames[random.nextInt(3)], Font.ITALIC, height)); // 随机获得当前验证码的字符 char codeChar = codeChars.charAt(random.nextInt(charsLength)); validationCode.append(codeChar); // 随机设置当前验证码字符的颜色 g.setColor(getRandomColor(10, 100)); // 在图形上输出验证码字符,x和y都是随机生成的 g.drawString(String.valueOf(codeChar), 16 * i + random.nextInt(7), height - random.nextInt(6)); } //todo 此为验证码数字表示 //todo 此为验证码图片url地址 String finalurl = UUID.randomUUID().toString(); finalurl = url + "\\" + finalurl + ".jpg"; //将图片存入服务器文件中 System.out.println(finalurl); FileOutputStream fos = new FileOutputStream(new File(finalurl)); ImageIO.write(image, "JPEG", fos); fos.flush(); fos.close(); ValidImage validImage=new ValidImage(validationCode.toString(),finalurl); return validImage; } private static Color getRandomColor(int minColor, int maxColor) { Random random = new Random(); if (minColor > 255) { minColor = 255; } if (maxColor > 255) { maxColor = 255; } //获得r的随机颜色值 int red = minColor + random.nextInt(maxColor - minColor); int green = minColor + random.nextInt(maxColor - minColor); int blue = minColor + random.nextInt(maxColor - minColor); return new Color(red, green, blue); }}
阅读全文
0 0
- 验证码生成及验证
- 生成验证码并验证
- 验证码生成与验证
- C#生成验证码
- C#生成验证码
- 生成验证码
- 验证码生成
- 生成验证码
- JSP生成验证码
- 生成验证码
- 生成验证码
- 数字验证码生成
- 动态生成验证码
- 生成验证码(1)
- 生成验证码(2)
- c# 生成验证码
- 生成验证码图像
- 生成验证码
- pyhton---异常处理的终极语法、网页访问基本读取、网页访问异常处理
- 程序员们,你们再这样下去会没朋友的。
- JSP基础(二十五)——EL表达式
- 初识MQTT协议(1)
- java 数组相关
- 验证码生成
- C,C++ 指针数组与数组指针
- redis与lamp整合
- 差分法与傅里叶谱方法计算拉普拉斯算子
- 【Unity】疑难杂症
- bzoj1132 [POI2008]Tro(叉积)
- 关于多个版本python的切换调用
- ORA-1653 oracle单个数据文件最大限制
- hadoop2.0集群搭建