Java随机生成图片

用Java语言生成一个带有字符串文本的图片总结来说只需要如下四步:

1.创建图片缓冲区

2.设置图片缓冲区的宽高及保存图片的类型

3.得到这个图片的绘制环境(拿到画笔)

4.将图片保存起来

代码如下:

//第一、二步,传入参数为缓冲区宽、高、保存图片类型

BufferedImage image=new BufferedImage(width1,height1,BufferedImage.TYPE_INT_RGB);

//第三步,得到绘制环境(需要用到Graphics类)

Graphics paint=image.getGraphics();

paint.setColor(Color.WHITE);//设置画笔颜色为白色

paint.fillRect(start,end,width2,height2);//绘制矩形并填充,将图片缓冲区的(start,end)坐标作为绘制图片的左上角坐标,绘制图片宽为width2、高为height2

paint.setColor(Color.RED);//设置画笔颜色为红色

paint.drawString(str,x,y);//设置需要绘制在图片上的文本,参数为字符串、字符串所在的x坐标和y坐标

//第四步,将图片保存起来(需要用到ImageIO类)

ImageIO.write(image,"JPEG",out);//参数为图片缓冲区、图片类型、输出流

通过以上代码便可实现用java语言生成一个简易的带有字符串文本的图片,具体实现如下,首先在IDEA中创建VerifyCode.java类:

image

有错误,请将g.drawStrig(sb.toString(),width/4,height-5);改为g.drawString(str,i*width/4,height-5);

image

image

通过代码VerifyCode vc=new VerifyCode();创建VerifyCode对象后就可以调用上述所有方法便可以实现随机验证码的图片了。

在HTML表单中实现验证码

借用上篇Java Web学习笔记之session入门中的保存用户登录信息案例中的代码,新增:

VerifyServlet.java:生成图片,保存图片上的文本到session域中,将图片响应给客户端。

LoginServlet.java中新增作用:判断用户输入的验证码是否正确,若正确则跳转至下一链接,若错误则保存错误信息到request域中,然后请求转发至login.jsp登录页面。

代码如下图:

VerifyServlet.java

image

LoginServlet.java

image

login.jsp(用到了javascript语法来更换验证码)

image

10月8日更正:途中的js代码有错误,将"ducument"改为"document"。

通过如上代码便可实现HTML中的验证码效果。

2018.3.19更

欢迎加入我的Java交流1群:659957958。群里目前已有1800人,每天都非常活跃,但为了筛选掉那些不怀好意的朋友进来搞破坏,所以目前入群方式已改成了付费方式,你只需要支付9块钱,即可获取到群文件中的所有干货以及群里面各位前辈们的疑惑解答;为了鼓励良好风气的发展,让每个新人提出的问题都得到解决,所以我将得到的入群收费收入都以红包的形式发放到那些主动给新手们解决疑惑的朋友手中。在这里,我们除了谈技术,还谈生活、谈理想;在这里,我们为你的学习方向指明方向,为你以后的求职道路提供指路明灯;在这里,我们把所有好用的干货都与你分享。还在等什么,快加入我们吧!

2018.4.21更:如果群1已满或者无法加入,请加Java学习交流2群:305335626 。群2作为群1的附属群,除了日常的技术交流、资料分享、学习方向指明外,还会在每年互联网的秋春招时节在群内发布大量的互联网内推方式,话不多说,快上车吧!

联系

If you have some questions after you see this article,you can tell your doubts in the comments area or you can find some info by clicking these links.

表单验证验证码 java_Java随机生成图片与HTML表单中的验证码实现相关推荐

  1. HTML表单验证(含用户名,密码,邮箱,手机号,验证码-验证)

    HTML表单验证(含用户名,密码,邮箱,手机号,验证码) 前几天对表单注册有点感兴趣,于是在课余时间了解了一些注册表单的验证方法,自己也试着做了一个表单的验证(前端验证),很low,各位童鞋应该都看得 ...

  2. html表单验证用正则表达式,JavaScript 使用正则表达式进行表单验证的示例代码

    搜索热词 JavaScript 表单验证正则表达式大全利用正则表达式判断是否是0-9的阿拉伯数字 function regIsDigit(fData) { var reg = new RegExp(& ...

  3. antd vue表单验证_ant design vue框架中自定义表单或单个表单框验证

    一.项目要求 1.要求:点击新增按钮弹出新增页面,在输入名称时进行验证,当输入名称和列表下的名称相同,即后台数据库中存在,此时将会提醒用户,该名称已存在, 2.要求:该名称不存在,则新增成功 二.思路 ...

  4. html input validator,BootstrapValidator 表单验证超详要怎么做?表单验证超详细教程 !...

    我们在接触Bootstrap的时候总会遇到不同的问题和困难,今天我们就来说说有关于"BootstrapValidator 表单验证超详要怎么做?"这个问题.下面是小编整理的有关于这 ...

  5. bootstrap的表单验证 vue_第45天:Web表单

    在了解了 Flask Bootstrap 基本框架之后,我们来了解一下 Flask 框架的 表单( form ),以帮助我们创建交互式的 Web 应用,最后会有个提交个人信息的例子. Flask-WT ...

  6. php表单验证内容不能为空,php校验表单检测字段是否为空的方法_PHP教程

    php校验表单检测字段是否为空的方法 这篇文章主要介绍了php校验表单检测字段是否为空的方法,涉及php验证表单的技巧,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了php校验表单检测字段是否 ...

  7. Flask项目实战——6—(前台用户模型、前台登录注册、图形验证码、手机短信验证码、添加表单验证短信验证码请求)

    1.前台用户模型 前台用户模型定义 创建前台模型文件 apps/front/models.py # -*- encoding: utf-8 -*- """ @File : ...

  8. table中加表单元素怎么验证_element-ui 解决 table 里包含表单验证的问题!

    实际项目中的场景,需要在table里做表单的验证,如图效果: 其实问题关键就在于如何给el-form-item动态绑定prop :prop="'tableData.' + scope.$in ...

  9. 12个方便易用的jquery表单验证插件

    绝大部分网站都是开放注册的,而注册就需要使用表单验证,因为网站都需要对注册用户的信息安全性和合理性做出判断,表单的注册都应该具备完善的验证方式,比如注册使用的手机号是否是真实的?用户填写的验证码是否正 ...

最新文章

  1. Python闭包局部变量问题
  2. RemoveError: ‘requests‘ is a dependency of conda and cannot be removed from
  3. Nginx 反向代理 负载均衡 虚拟主机
  4. CTF-练习平台-WEB之 签到题
  5. 比特币多重签名机制使用篇
  6. 想学数据分析但不会Python,过来看看SQL吧(下)~
  7. Spring Boot之HelloWorld
  8. python pack unpack_golang 仿python pack/unpack
  9. 关于.NET框架的主要组件 10:45:02
  10. JavaScript中的纯函数是什么?
  11. 彻底搞清 Flink 中的 Window 机制
  12. 10. Browser 对象 - Location 对象(2)
  13. dll注入之SetWindowsHookEx 键盘消息钩子
  14. Android 分贝测试仪功能,Android最新大厂面试真题总结
  15. 优化家庭广电宽带网络设置
  16. 如何建立一个网站(我的5年经验谈)
  17. Scrapy+Selenium爬取动态网页:no ‘moz:firefoxOptions.binary‘ capability provided
  18. 爬取了知乎2.2亿阅读量 “有漂亮女朋友是什么体验“,结果发现...
  19. 推荐一款很好用的调试JS的Eclipse插件
  20. PXE配置中ks.cfg文件介绍

热门文章

  1. 【算法】海量数据相似度计算之simhash和海明距离
  2. Java 小数与百分数互相转换
  3. tableView 的使用步骤和方法
  4. ARFoundation系列讲解 - 46 如何选择识别图
  5. 深入学习jquery源码之ajaxSetup()
  6. ubuntu更换源(清华源)并更新系统
  7. 适合摘抄在便签上的简短句子素材 用它记录很合适
  8. 记来到大学双创的第一次总结
  9. 后端日志【14】:检讨自我:坚持自我修炼的一个月又10天,我现在有什么感觉呢?
  10. 在线点餐微信小程序插件 小程序一键接入肯德基麦当劳星巴克在线点餐