Java代码生成图片验证码
Java生成图片验证码
1、编写代码
copy 下面的代码 并运行main函数
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.Base64;
import java.util.Random;public class GenericImage {public static void main(String[] args) throws IOException {// 生成4位验证码String verity = genVerityText(4);// 生成验证图片的base64加密字符串String accountName = verityImage(verity);System.out.println(accountName);}public static String verityImage(String verity) throws IOException {Color color = new Color(255,255,255);// 图片的宽度 30 px 像素int width = 90;// 图片高度 30 px 像素int height = 30;// 使用的颜色类型 RGBint imageType = 1;BufferedImage bufferedImage = new BufferedImage(width, height, 1);Graphics graphics = bufferedImage.getGraphics();// 背景色设为白色graphics.setColor(new Color(255, 255, 255));// 背景填充大小graphics.fillRect(0, 0 , width, height);// 添加干扰线addDisturbLine(graphics, width, height, 3);// 绘画验证码drawVerity(graphics, verity, height);graphics.dispose();ByteArrayOutputStream out = new ByteArrayOutputStream();ImageIO.write(bufferedImage, "jpeg", out);// 使用base64进行加密return Base64.getEncoder().encodeToString(out.toByteArray());}public static void addDisturbLine(Graphics graphics, int width, int height, int lineCount){if(lineCount > 0){int x = 0, y, x1 = width, y1;Random random = new Random();for (int i = 0; i < lineCount; i ++){// 随机颜色graphics.setColor(randomColor());y = random.nextInt(height);y1 = random.nextInt(height);// 画线条graphics.drawLine(x, y, x1, y1);}}}public static String genVerityText(int length){StringBuilder verity = new StringBuilder();Random random = new Random();int i = 0;while (i < length){int rand = random.nextInt(10);verity.append(rand);i ++;}return verity.toString();}public static void drawVerity(Graphics graphics, String verity, int height){// 字体大小为图片高度的80%int fsize = (int) (height * 0.8);int fx = height - fsize;int fy = fsize;// 设定字体graphics.setFont(new Font("Default", Font.PLAIN, fsize));// 写验证码字符for (int i = 0; i < verity.length(); i++) {fy = (int)((Math.random() * 0.3 + 0.6) * height);// 随机颜色graphics.setColor(randomColor());// 将验证码字符显示到图象中graphics.drawString(verity.charAt(i) + "", fx, fy);fx += fsize * 0.9;}}private static Color randomColor(){Random random = new Random();return new Color(random.nextInt(255), random.nextInt(255), random.nextInt(255));}}
2、创建html文件
注意:img 标签的src的值为“data:image/jpeg;base64,”加上main函数输出的内容
<html>
<head><title>验证码</title>
</head>
<body>
<img style="width: 190px; height: 130px; " src="https://img-blog.csdnimg.cn/2022010700552259467.jpeg">
</body>
</html>
3、用浏览器打开html文件
内容如下
Java代码生成图片验证码相关推荐
- Java代码生成图片验证码实现
介绍一个使用Java代码生成随机图片验证码的示例 可以直接配置成Servlet,在页面直接调用 Java代码随机生成图片验证码 package com.rchm.util.images;import ...
- 后端生成图片验证码,Kotlin生成图片验证码,Java生成图片验证码,图片验证码的生成和校验
后端生成图片验证码 注:以下代码主要使用kotlin进行编写,kotlin可兼容java,可以直接使用.IDEA也支持将java与kotlin代码进行互相转换. 1.引入依赖: Gradle(若你使用 ...
- 【java图片验证码】Java 服务端生成图片验证码及验证
Java 服务端生成图片验证码及验证 简介 验证码是防止有人利用机器人自动批量注册.对特定的注册用户用特定程序暴力破解方 式进行不断的登录.灌水.因为验证码是一个混合了数字或符号的图片,人眼看起来都费 ...
- php生成图片验证码代码,PHP生成图片验证码以及点击切换的代码
这篇文章主要介绍了PHP生成图片验证码实例,同时介绍了点击切换(看不清?换一张)效果实现方法,需要的朋友可以参考下 这里来看下效果: 现在让我们来看下 PHP 代码<?php session_s ...
- 生成验证码图片的Java代码
文章目录 验证码演示代码 请求资源路径为什么要添加一个随机数的参数 验证码演示代码 package priv.lwx.javaex.servlet_demo.web.servlet.response; ...
- java代码进行短信接收_自动化测试-自动获取手机短信验证码
最近在做生产环境自动化测试,碰到一个难题就是短信验证码的获取,生产环境短信验证码是真实的,不能采用测试环境将短信验证码写成固定的方法解决,我的思路是:做一个apk小程序,将手机上的短信验证码实时读取出 ...
- java代码实现短信接受验证码
1.本文以联信通短信平台为例.其客户端界面如下 2.后台实现java代码:首先导入依赖需要的jar包(用的maven项目) <dependency><groupId>commo ...
- 用java如何做图片验证码,运用java生成图片验证码
使用java生成图片验证码 本程序来源以下网址:http://www.linux521.com/2009/java/200909/8475.html 仅供学习和参考 import java.awt.B ...
- java 验证码 字母_使用java生成字母验证码
本文实例为大家分享了java生成字母验证码的具体代码,供大家参考,具体内容如下 import java.awt.BasicStroke; import java.awt.Color; import j ...
最新文章
- 开发板与pc之间文件传输:kermit and lrzsz
- 十三、熵编码算法(3):CAVLC原理
- python第三方库numpy-python第三方库之numpy基础
- 查询数据库游标使用情况以及sql
- Python基础02-序列及通用操作
- PyCaret 2.0在这里-新增功能?
- 腾讯云cloudlite认证_【腾讯云】考个证...大数据开发工程师认证
- elasticsearch亿级数据量全量索引导入优化方案
- 动态修改网页title
- python是强定义语言吗_python是强类型语言吗
- Java 格式化时间
- .NET开发 正则表达式中的 Bug
- 微软结束 SolarWinds 事件调查:部分源代码被盗,1000人参与
- 图像融合评价指标:CC(Correlation Coefficient)以及余弦相关度、欧氏距离和皮尔逊相关度的通俗解释
- vb学生管理系统服务器编程,利用VB进行服务器编程实例汇总.doc
- 提高开发效率的 Chrome 开发者工具高端使用技巧(一)
- 一句话,读懂首席架构师、CTO和技术总监的区别
- 求定积分的不太常见的方法
- ARM CHI总线笔记
- 程序员转行都去干嘛了?产品经理很正常,这位卖烧饼的也太强了