图片验证码的JAVA工具类
生活随笔
收集整理的這篇文章主要介紹了
图片验证码的JAVA工具类
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
我們平時(shí)開發(fā)時(shí)經(jīng)常會(huì)遇到需要圖片驗(yàn)證碼,基礎(chǔ)的驗(yàn)證碼包括了數(shù)字、字母、甚至可能有漢字。下面我給出一個(gè)簡(jiǎn)單的工具類。
package com..ankang.tony.util;import java.awt.Color;import java.awt.Font; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.util.Date; import java.util.Random; import javax.imageio.ImageIO; /** * 驗(yàn)證碼生成器 */ public class ValidateCode { // 圖片的寬度。 private int width = 160; // 圖片的高度。 private int height = 40; // 驗(yàn)證碼字符個(gè)數(shù) private int codeCount = 5; // 驗(yàn)證碼干擾線數(shù) private int lineCount = 150; // 驗(yàn)證碼 private static String code = null; // 驗(yàn)證碼圖片Buffer private BufferedImage buffImg = null; private char[] codeSequence = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '2', '3', '4', '5', '6', '7', '8', '9' }; public ValidateCode() { this.createCode(); } /** * * @param width * 圖片寬 * @param height * 圖片高 */ public ValidateCode(int width, int height) { this.width = width; this.height = height; this.createCode(); } /** * * @param width * 圖片寬 * @param height * 圖片高 * @param codeCount * 字符個(gè)數(shù) * @param lineCount * 干擾線條數(shù) */ public ValidateCode(int width, int height, int codeCount, int lineCount) { this.width = width; this.height = height; this.codeCount = codeCount; this.lineCount = lineCount; this.createCode(); } public void createCode() { int x = 0, fontHeight = 0, codeY = 0; int red = 0, green = 0, blue = 0; x = width / (codeCount + 1);// 每個(gè)字符的寬度 fontHeight = height - 2;// 字體的高度 codeY = height - 3; // 圖像buffer buffImg = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); Graphics2D g = buffImg.createGraphics(); // 生成隨機(jī)數(shù) Random random = new Random(); // 將圖像填充為白色 g.setColor(Color.WHITE); g.fillRect(0, 0, width, height); // 創(chuàng)建字體 ImgFontByte imgFont = new ImgFontByte(); Font font = imgFont.getFont(fontHeight); g.setFont(font); for (int i = 0; i < lineCount; i++) { int xs = random.nextInt(width); int ys = random.nextInt(height); int xe = xs + random.nextInt(width / 8); int ye = ys + random.nextInt(height / 8); red = random.nextInt(255); green = random.nextInt(255); blue = random.nextInt(255); g.setColor(new Color(red, green, blue)); g.drawLine(xs, ys, xe, ye); } // randomCode記錄隨機(jī)產(chǎn)生的驗(yàn)證碼 StringBuffer randomCode = new StringBuffer(); // 隨機(jī)產(chǎn)生codeCount個(gè)字符的驗(yàn)證碼。 for (轉(zhuǎn)載于:https://www.cnblogs.com/Jansens520/p/6389090.html
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的图片验证码的JAVA工具类的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【python之路24】装饰器
- 下一篇: Python学习 第2天 IDE开发工具