使用AWT组件实现验证码功能
来源:互联网 发布:731活体实验 知乎 编辑:程序博客网 时间:2024/05/18 17:58
1 import java.awt.Color; 2 import java.awt.Font; 3 import java.awt.FontMetrics; 4 import java.awt.Graphics2D; 5 import java.awt.image.BufferedImage; 6 import java.io.File; 7 import java.io.IOException; 8 import java.util.Random; 9 10 import javax.imageio.ImageIO;11 12 public class Test {13 14 /**15 * @param args16 * @throws IOException 17 */18 public static void main(String[] args) throws IOException {19 //用于随机生成验证码的字符串集20 String[] strs = {"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R"21 ,"S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j"22 ,"k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1"23 ,"2","3","4","5","6","7","8","9"};24 //随机生成干扰线的纵坐标y1和y225 Random y1Random = new Random();26 Random y2Random = new Random();27 int y1 = y1Random.nextInt(31);28 int y2 = y2Random.nextInt(31);29 30 //随机生成用于组成验证码的字符串所在集的下标值31 Random code1Random = new Random();32 Random code2Random = new Random();33 Random code3Random = new Random();34 Random code4Random = new Random();35 int code1Index = code1Random.nextInt(62);36 int code2Index = code2Random.nextInt(62);37 int code3Index = code3Random.nextInt(62);38 int code4Index = code4Random.nextInt(62);39 40 //随机生成rgb颜色41 Random rRandom = new Random();42 Random gRandom = new Random();43 Random bRandom = new Random();44 int r = rRandom.nextInt(256);45 int g = gRandom.nextInt(256);46 int b = bRandom.nextInt(256);47 Color color = new Color(r, g, b);48 49 //拼接成完整字符串50 String codeString = strs[code1Index] + strs[code2Index] + strs[code3Index] + strs[code4Index];51 52 //定义一个宽70像素,高30像素的jpg图片53 BufferedImage bi = new BufferedImage(70, 30, BufferedImage.TYPE_INT_RGB);54 //定义graphis绘画对象55 Graphics2D graphics2d = bi.createGraphics(); 56 graphics2d.setBackground(Color.WHITE);57 graphics2d.setColor(color);58 graphics2d.setFont(new Font(Font.SANS_SERIF, Font.BOLD, 20));59 graphics2d.clearRect(0, 0, 70, 30);
//绘制干扰线60 graphics2d.drawLine(0, y1, 70, y2);61 62 //居中绘制字符串63 FontMetrics fontMetrics = graphics2d.getFontMetrics();64 int stringWidth = fontMetrics.stringWidth(codeString);65 int stringAscent = fontMetrics.getAscent();66 int xCode = 70 / 2 - stringWidth / 2;67 int yCode = 30 / 2 + stringAscent / 2;68 graphics2d.drawString(codeString, xCode, yCode);69 70 //输出图片71 File file = new File("C:\\Users\\zhengbing\\Desktop\\image.jpg");72 ImageIO.write(bi, "jpeg", file);73 }74 75 }
最后可以返回校验字符串codeString,来达到验证的功能
0 0
- 使用AWT组件实现验证码功能
- 用AWT+Servlet实现验证码
- 使用kaptcha组件实现验证码
- AWT组件的Swing实现
- 使用Servlet实现网页验证码功能
- struts2使用kaptcha实现验证码功能
- ---使用HttpSession实现验证码功能
- SWT中使用AWT组件
- awt--常用组件的使用
- java AWT实现画图功能
- java awt 实现简单的验证码图片的生成
- 实现验证码功能
- 实现验证码功能
- 验证码功能实现
- 验证码功能实现
- 验证码功能实现
- 验证码功能实现
- 验证码功能实现
- Overriding Java methods in Groovy for unit testing
- matlab编程与工程应用(第二版) 第十一章 matlab作图 笔记
- 自制分布式漏洞扫描工具
- 从12306看高性能网站并发集群与负载均衡
- SQL中的cast和convert的用法
- 使用AWT组件实现验证码功能
- 在Tomcat下配置Solr 4.x 版本
- ARP解析过程
- 新浪微博数据抓取(java实现)
- 腾讯微博数据抓取(java实现)
- 使用jsTree动态加载节点
- 在OpenShift云空间上部署java web应用
- windows下安装openssh服务并实现远程登录
- (转载)重新对APK文件签名