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代码生成图片验证码相关推荐

  1. Java代码生成图片验证码实现

    介绍一个使用Java代码生成随机图片验证码的示例 可以直接配置成Servlet,在页面直接调用 Java代码随机生成图片验证码 package com.rchm.util.images;import ...

  2. 后端生成图片验证码,Kotlin生成图片验证码,Java生成图片验证码,图片验证码的生成和校验

    后端生成图片验证码 注:以下代码主要使用kotlin进行编写,kotlin可兼容java,可以直接使用.IDEA也支持将java与kotlin代码进行互相转换. 1.引入依赖: Gradle(若你使用 ...

  3. 【java图片验证码】Java 服务端生成图片验证码及验证

    Java 服务端生成图片验证码及验证 简介 验证码是防止有人利用机器人自动批量注册.对特定的注册用户用特定程序暴力破解方 式进行不断的登录.灌水.因为验证码是一个混合了数字或符号的图片,人眼看起来都费 ...

  4. php生成图片验证码代码,PHP生成图片验证码以及点击切换的代码

    这篇文章主要介绍了PHP生成图片验证码实例,同时介绍了点击切换(看不清?换一张)效果实现方法,需要的朋友可以参考下 这里来看下效果: 现在让我们来看下 PHP 代码<?php session_s ...

  5. 生成验证码图片的Java代码

    文章目录 验证码演示代码 请求资源路径为什么要添加一个随机数的参数 验证码演示代码 package priv.lwx.javaex.servlet_demo.web.servlet.response; ...

  6. java代码进行短信接收_自动化测试-自动获取手机短信验证码

    最近在做生产环境自动化测试,碰到一个难题就是短信验证码的获取,生产环境短信验证码是真实的,不能采用测试环境将短信验证码写成固定的方法解决,我的思路是:做一个apk小程序,将手机上的短信验证码实时读取出 ...

  7. java代码实现短信接受验证码

    1.本文以联信通短信平台为例.其客户端界面如下 2.后台实现java代码:首先导入依赖需要的jar包(用的maven项目) <dependency><groupId>commo ...

  8. 用java如何做图片验证码,运用java生成图片验证码

    使用java生成图片验证码 本程序来源以下网址:http://www.linux521.com/2009/java/200909/8475.html 仅供学习和参考 import java.awt.B ...

  9. java 验证码 字母_使用java生成字母验证码

    本文实例为大家分享了java生成字母验证码的具体代码,供大家参考,具体内容如下 import java.awt.BasicStroke; import java.awt.Color; import j ...

最新文章

  1. 开发板与pc之间文件传输:kermit and lrzsz
  2. 十三、熵编码算法(3):CAVLC原理
  3. python第三方库numpy-python第三方库之numpy基础
  4. 查询数据库游标使用情况以及sql
  5. Python基础02-序列及通用操作
  6. PyCaret 2.0在这里-新增功能?
  7. 腾讯云cloudlite认证_【腾讯云】考个证...大数据开发工程师认证
  8. elasticsearch亿级数据量全量索引导入优化方案
  9. 动态修改网页title
  10. python是强定义语言吗_python是强类型语言吗
  11. Java 格式化时间
  12. .NET开发 正则表达式中的 Bug
  13. 微软结束 SolarWinds 事件调查:部分源代码被盗,1000人参与
  14. 图像融合评价指标:CC(Correlation Coefficient)以及余弦相关度、欧氏距离和皮尔逊相关度的通俗解释
  15. vb学生管理系统服务器编程,利用VB进行服务器编程实例汇总.doc
  16. 提高开发效率的 Chrome 开发者工具高端使用技巧(一)
  17. 一句话,读懂首席架构师、CTO和技术总监的区别
  18. 求定积分的不太常见的方法
  19. ARM CHI总线笔记
  20. 程序员转行都去干嘛了?产品经理很正常,这位卖烧饼的也太强了

热门文章

  1. 浅析网站seo优化原则
  2. 让ESXi7.0不支持的板载网卡发挥余热
  3. 2.机器学习复习笔记-各种评估指标
  4. App启动通用流程图方案
  5. 智能对话架构师速成秘诀在这里
  6. iPhone电池充放电循环次数的计算说明
  7. php水果百科动态网站毕业设计源码060917
  8. 恩智浦智能车核心板LPC54606PCB原理图
  9. 工厂源码--迭代器Iterator
  10. Python药店销售数据分析