文章目录

  • 前言
  • 一、kaptcha默认的图片样式的问题
  • 二、自定义图片效果的步骤
    • 1.创建自定义鱼纹效果类
    • 2.修改kaptcha.xml配置
  • 总结

前言

本文教大家如何自定义kaptcha的图片样式,效果如下:


一、kaptcha默认的图片样式的问题

这里我以鱼眼效果为例,大家看下默认的效果:

从上图大家可以看到,文字变形很严重,不是很好辨认。
下面是xml配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><!-- 生成kaptcha的bean--><bean id="captchaProducer" class="com.google.code.kaptcha.impl.DefaultKaptcha"><property name="config"><bean class="com.google.code.kaptcha.util.Config"><constructor-arg type="java.util.Properties"><!--设置kaptcha属性 --><props><prop key="kaptcha.border ">yes</prop><prop key="kaptcha.border.color">105,179,90</prop><prop key="kaptcha.textproducer.font.color">black</prop><prop key="kaptcha.image.width">100</prop><prop key="kaptcha.image.height">44</prop><prop key="kaptcha.textproducer.font.size">27</prop><prop key="kaptcha.session.key">code</prop><prop key="kaptcha.textproducer.char.length">4</prop><prop key="kaptcha.textproducer.font.names">Arial, Courier</prop><prop key="kaptcha.textproducer.char.string">0123456789</prop><prop key="kaptcha.obscurificator.impl">com.google.code.kaptcha.impl.FishEyeGimpy</prop><!--                        <prop key="kaptcha.noise.color">black</prop>--><prop key="kaptcha.noise.impl">com.google.code.kaptcha.impl.NoNoise</prop><prop key="kaptcha.textproducer.char.space">3</prop><prop key="kaptcha.textproducer.impl">com.google.code.kaptcha.text.impl.DefaultTextCreator</prop>         </props></constructor-arg></bean></property></bean>
</beans>

其中图片效果用的是com.google.code.kaptcha.impl.FishEyeGimpy

二、自定义图片效果的步骤

这里我还是以鱼纹效果为例

1.创建自定义鱼纹效果类

代码如下(示例):

package com.zjyc.qzaft.entity.customs;import com.google.code.kaptcha.impl.FishEyeGimpy;import java.awt.*;
import java.awt.image.BufferedImage;/*** Author: mek* Date: 2022\5\14 0014* Time: 10:37* Description: 自定义鱼眼纹效果*/
public class AftFishEyeGimpy extends FishEyeGimpy {@Overridepublic BufferedImage getDistortedImage(BufferedImage baseImage) {Graphics2D graph = (Graphics2D)baseImage.getGraphics();int imageHeight = baseImage.getHeight();int imageWidth = baseImage.getWidth();int horizontalLines = imageHeight / 7;int verticalLines = imageWidth / 7;int horizontalGaps = imageHeight / (horizontalLines + 1);int verticalGaps = imageWidth / (verticalLines + 1);int i;for(i = horizontalGaps; i < imageHeight; i += horizontalGaps) {graph.setColor(Color.blue);graph.drawLine(0, i, imageWidth, i);}for(i = verticalGaps; i < imageWidth; i += verticalGaps) {graph.setColor(Color.red);graph.drawLine(i, 0, i, imageHeight);}int[] pix = new int[imageHeight * imageWidth];int j = 0;for(int j1 = 0; j1 < imageWidth; ++j1) {for(int k1 = 0; k1 < imageHeight; ++k1) {pix[j] = baseImage.getRGB(j1, k1);++j;}}/*这里删除了默认鱼纹效果类的渲染代码*/return baseImage;}
}

2.修改kaptcha.xml配置

将图片效果类设置成自己的AftFishEyeGimpy类
代码如下(示例):

<prop key="kaptcha.obscurificator.impl">com.zjyc.qzaft.entity.customs.AftFishEyeGimpy</prop>

总结

自定义图片效果的方法,就是新建类继承默认的效果类,然后重写getDistortedImage函数。

sprintboot验证码kaptcha 自定义图片样式相关推荐

  1. 用python3根据配置自动生成自定义图片logo(一键解决图片侵权困扰)

    欢迎关注原创视频教程 Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.c ...

  2. 关于图片验证码Kaptcha的应用

    关于Kaptcha的项目应用 应用环境Spring boot + Spring Cloud 首先pom.xml 种注入kaptcha的相关依赖: <dependency> <grou ...

  3. markdown编辑器中去除图片水印以及自定义水印样式

    目录 内容介绍 一.图片链接 1.默认图片 2.参数 3.自定义 二.去除水印 1.删除参数 2.设置字号 内容介绍   csdn的markdown编辑中经常会插入图片,用做代码截图.效果展示等,默认 ...

  4. 验证码-kaptcha

    常见的验证码方案有 kaptcha 等.本篇记录 kaptcha 用法 kaptcha 引入依赖 <!-- https://mvnrepository.com/artifact/com.gith ...

  5. java验证码Kaptcha

    aptcha 是一个可高度配置的实用验证码生成工具 一.最新的maven源 <!-- https://mvnrepository.com/artifact/com.github.penggle/ ...

  6. JAVA google验证码kaptcha 属性配置大全

    property 说明 取值范围 默认值 kaptcha.border 图片边框 yes , no yes kaptcha.border.color 边框颜色 合法值:r,g,b (and optio ...

  7. 验证码 KAPTCHA 参数详解

    原地址:https://www.cnblogs.com/louis80/p/5230507.html Constant 描述 默认值 kaptcha.border 图片边框,合法值:yes , no ...

  8. kaptcha html页面验证码,kaptcha验证码使用(示例代码)

    效果图: kaptcha 是一个很有用的验证码生成工具.有了它,你能够生成各种样式的验证码,由于它是可配置的. kaptcha工作的原理是调用 com.google.code.kaptcha.serv ...

  9. [转]C# winForm 自定义鼠标样式的两种方法

    本文转自:http://www.cnblogs.com/hzbzxm/archive/2008/09/15/1291104.html 以前试过在WinForm中自定义鼠标样式,结果显示出来的鼠标变成单 ...

  10. 用css自定义滚动条样式

    如果你是一个搞网页前端的,有必要了解一下自定义滚动条样式这个东东.目前支持自定义滚动条样式的有IE浏览器.webkit内核浏览器(chrome). IE下的滚动条样式 1.样式规则 scrollbar ...

最新文章

  1. Spring mvc Data Redis—Pub/Sub(附Web项目源码)
  2. flask部署pytorch
  3. 升级PHP到5.3.3的过程及注意事项
  4. PyTorch Multi-GPU使用代码
  5. 凝思操作系统启动盘制作_实用!如何快速制作U盘启动盘并且重装系统
  6. php和html的怎么结合,php和html怎么结合,我要做seesion验证啊。。。
  7. 七、Python简单爬取学堂在线合作院校页面内容
  8. netty发送数据_看完这篇还不清楚Netty的内存管理,那我就哭了
  9. java杰森_java - 杰森格式错误,当他已经得到一个数组时询问 - 堆栈内存溢出
  10. 投票应用是用mysql还是redis_签到功能,用 MySQL 还是 Redis?
  11. html5盒子层级设置,解决CSS中子元素z-index与父元素兄弟节点的层级问题
  12. linux 单网卡 双ip,Linux操作系统单网卡双IP的设置
  13. Swift_学习笔记_调用ObjectiveC方法
  14. 如何实现数据大屏在各种场景下的时间展示?
  15. CSS之background深度详解
  16. iphone xr xs_如何关闭iPhone X,XS和XR
  17. 网络安全检测与防范 测试题(二)
  18. LaTex 数学之运算符
  19. RAD Studio 10.4 for delphi XE Assigned和Nil的联系与区别
  20. word中的破折号中间有空格?

热门文章

  1. Anchor box坐标(Sac,Sar,Eac,Ear)到Precdict box坐标(Spc,Spr,Epc,Epr)关系推导
  2. xp重启计算机的快捷键,xp电脑关机重启快捷键是什么
  3. 吐槽下2014大数据论坛
  4. 银河麒麟安装docker-compose体验
  5. Ubuntu 16.04 解决WPS for Linux提示“系统缺失字体symbol、wingdings、wingdings 2、wingdings 3、webding”的问题
  6. HTML+CSS个人静态网页设计
  7. 嵌入式系统工程师的职位要求
  8. c语言输出打印字符串数组,C语言字符串输出
  9. es python search 返回_Elasticsearch - python操作es,以及curl命令查询es的总结
  10. 贪心算法-2.找钱问题