Atitit 图片 验证码生成attilax总结
Atitit 图片 验证码生成attilax总结
1.1. 图片验证码总结
因此,CAPTCHA在图片验证码这一应用点上已经无法满足这一假设了。在这段时间内,出现了很多的加强和识别图形验证码的方法(每一种方法的详细原理和解释,可以参见wooyun drops,在此不做详述):
键后有个文字加粗的.不过我想这个应该满足不了你的要求.你可以先把文字栅格化,然后选择->修改->扩展选区,再进行填充.直到你想要的效果.建议你先把文字做得比你想要的大一点.再进行此操作,得到你想要效果后再缩小.因为是把选区进行扩展再填充,所以边边色起据齿,放大做再缩小这个问题就不会严重了.加分加分.
选中文字,在“字符”窗口的左下角,点第一个“T”按钮,即可变粗,如果还不够,那就按住ctrl+鼠标单击文字图层=》“选择”=》修改=》扩展,输入扩展数字确定=》新建图层,填充即可
1.2. 镂空文字 打散 干扰线 文字扭曲 粘连
膨胀,填充
1.3. 实现
/atiplat_cms/src/com/attilax/captcha/CapchGene.java
public void geneCapch(OutputStream os) throws IOException
{
//设置字母的大小,大小
int width=600, height=200;
int fontSiz = 50;
Font mFont = new Font("Times New Roman", Font.BOLD, fontSiz);
// response.setHeader("Pragma","No-cache");
// response.setHeader("Cache-Control","no-cache");
// response.setDateHeader("Expires", 0);
//表明生成的响应是图片
// response.setContentType("image/jpeg");
// 100*18
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics g = image.getGraphics();
//set boder
g.setColor(new Color(102,102,102));
g.drawRect(0, 0, width-1, height-1);
//set bg
g.setColor(getRandColor(200,250));
// g.fillRect(1, 1, width-1, height-1);
g.fillRect(0,0, width, height);
g.setFont(mFont);
g.setColor(getRandColor(160,200));
Random random = new Random();
//画随机线
// for (int i=0;i<155;i++)
// {
// int x = random.nextInt(width - 1);
// int y = random.nextInt(height - 1);
// int xl = random.nextInt(6) + 1;
// int yl = random.nextInt(12) + 1;
// g.drawLine(x,y,x + xl,y + yl);
// }
//
// //从另一方向画随机线
// for (int i = 0;i < 70;i++)
// {
// int x = random.nextInt(width - 1);
// int y = random.nextInt(height - 1);
// int xl = random.nextInt(12) + 1;
// int yl = random.nextInt(6) + 1;
// g.drawLine(x,y,x - xl,y - yl);
// }
//生成随机数,并将随机数字转换为字母
String sRand="";
for (int i=0;i<6;i++)
{
int itmp = random.nextInt(26) + 65;
char ctmp = (char)itmp;
sRand += String.valueOf(ctmp);
g.setColor(new Color(20+random.nextInt(110),20+random.nextInt(110),20+random.nextInt(110)));
g.drawString(String.valueOf(ctmp),fontSiz*i+10,fontSiz);
}
// HttpSession session = request.getSession(true);
// session.setAttribute("rand",sRand);
// g.dispose();
ImageIO.write(image, "JPEG", os);
}
1.4. 参考
photoshop制作镂空文字
作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 )
汉字名:艾提拉(艾龙), EMAIL:1466519819@qq.com
转载请注明来源: http://www.cnblogs.com/attilax/
Atiend
Atitit 图片 验证码生成attilax总结的更多相关文章
- 开发工具类API调用的代码示例合集:六位图片验证码生成、四位图片验证码生成、简单验证码识别等
以下示例代码适用于 www.apishop.net 网站下的API,使用本文提及的接口调用代码示例前,您需要先申请相应的API服务. 六位图片验证码生成:包括纯数字.小写字母.大写字母.大小写混合.数 ...
- Flask实战第40天:图片验证码生成技术
图片验证码生成 安装pillow pip install pillow 在utils下新建python package命名为captcha 把需要需要用到的字体放在captcha下 编辑captcha ...
- php 图片验证码生成 前后台验证
自己从前一段时间做了个php小项目,关于生成图片验证码生成和后台的验证,把自己用到的东西总结一下,希望大家在用到相关问题的时候可以有一定的参考性. 首先,php验证码生成. 代码如下: 1.生成图像代 ...
- [转]php 图片验证码生成 前后台验证
本文转自:https://www.cnblogs.com/xiaoyezi/p/3541195.html 自己从前一段时间做了个php小项目,关于生成图片验证码生成和后台的验证,把自己用到的东西总结一 ...
- JavaWeb开发之普通图片验证码生成技术与算术表达式验证码生成技术
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6134649.html 另:算术验证码生成的JSP.Servlet实现均已移植github:https:/ ...
- .net图片验证码生成、点击刷新及验证输入是否正确
①创建ValidateCode.aspx,在ValidateCode.aspx.cs中加入如下代码.生成验证码图片,在页面上输出,输出jpeg格式. protected void Page_Load( ...
- 一篇Java图片验证码生成的代码
package projectUtil; /** * @author tian * @date 2019/4/1015:58 */ import javax.imageio.ImageIO; impo ...
- Java图片验证码生成工具
直接把以下代码拷贝使用: import javax.imageio.ImageIO;import java.awt.*;import java.awt.image.BufferedImage;impo ...
- node 图片验证码生成
var captchapng = require('captchapng'); var http = require("http") var server = http.creat ...
随机推荐
- python+eclipse环境搭建
一.Eclipse 的安装 Eclipse的安装是很容易的.Eclipse是基于java的一个应用程序,因此需要一个java的运行环境(JRE)才行.(我这里主要介绍windows下的安装) JRE的 ...
- git svn clone时间估算
处理器: Intel(R) Xeon(R) CPU E5-2620 @2.00GHz 2.00Ghz 内存:32.0 GB 操作系统: Windows Server 2008 R2 Enterpris ...
- Cobbler学习之二--Cobbler的Web管理和维护
Cobbler的Web管理模块和命令行模块是可以分开工作的,没有依赖关系. 1 WebUI的功能 查看所有的对象和配置文件 添加或者删除system,distro, profile 执行“cobble ...
- NOI 4976:硬币
描述 宇航员Bob有一天来到火星上,他有收集硬币的习惯.于是他将火星上所有面值的硬币都收集起来了,一共有n种,每种只有一个:面值分别为a1,a2- an. Bob在机场看到了一个特别喜欢的礼物,想买来 ...
- c++中的指针
指针用起来是一把利器,但用得不好的童鞋 无异于 火上浇油 ,下面笔者将自己学习 的一点小小心得,与君共享 指针在类中 1.对象指针 初始化 Point a(4,5); Point *p1 = & ...
- android wifi P2P CONNECT, INVITE和JOIN流程选择
android wifi P2P CONNECT, INVITE和JOIN流程选择
- ADO.NET Entity Framework
ADO.NET Entity Framework 是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R Mapping) 解决方案, 早期被称为 ObjectSpace,现已经包含在 V ...
- 影响Java EE性能的十大问题(转)
本文作者是一名有10多年经验的高级系统架构师,他的主要专业领域是Java EE.中间件和JVM技术.他在性能优化和提升方面也有很深刻的见解,下面他将和大家分享一下常见的10个影响Java EE性能问题 ...
- HTML5-表格
表格:表头<caption>,行<tr>,列<td>,标题<th> 属性:cellpadding="10" cellspacing= ...
- 酷狗 KRC 文件的解析
清理硬盘发现以前写过一个进行一半的代码,这次补全并从硬盘删掉. 格式说明来自 https://shansing.com/read/392/ krc解码并解压缩后得到一个字符串,例子: [id:$000 ...