Atitit 图片 验证码生成attilax总结

1.1. 图片验证码总结1

1.2. 镂空文字  打散 干扰线 文字扭曲 粘连2

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总结的更多相关文章

  1. 开发工具类API调用的代码示例合集:六位图片验证码生成、四位图片验证码生成、简单验证码识别等

    以下示例代码适用于 www.apishop.net 网站下的API,使用本文提及的接口调用代码示例前,您需要先申请相应的API服务. 六位图片验证码生成:包括纯数字.小写字母.大写字母.大小写混合.数 ...

  2. Flask实战第40天:图片验证码生成技术

    图片验证码生成 安装pillow pip install pillow 在utils下新建python package命名为captcha 把需要需要用到的字体放在captcha下 编辑captcha ...

  3. php 图片验证码生成 前后台验证

    自己从前一段时间做了个php小项目,关于生成图片验证码生成和后台的验证,把自己用到的东西总结一下,希望大家在用到相关问题的时候可以有一定的参考性. 首先,php验证码生成. 代码如下: 1.生成图像代 ...

  4. [转]php 图片验证码生成 前后台验证

    本文转自:https://www.cnblogs.com/xiaoyezi/p/3541195.html 自己从前一段时间做了个php小项目,关于生成图片验证码生成和后台的验证,把自己用到的东西总结一 ...

  5. JavaWeb开发之普通图片验证码生成技术与算术表达式验证码生成技术

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6134649.html    另:算术验证码生成的JSP.Servlet实现均已移植github:https:/ ...

  6. .net图片验证码生成、点击刷新及验证输入是否正确

    ①创建ValidateCode.aspx,在ValidateCode.aspx.cs中加入如下代码.生成验证码图片,在页面上输出,输出jpeg格式. protected void Page_Load( ...

  7. 一篇Java图片验证码生成的代码

    package projectUtil; /** * @author tian * @date 2019/4/1015:58 */ import javax.imageio.ImageIO; impo ...

  8. Java图片验证码生成工具

    直接把以下代码拷贝使用: import javax.imageio.ImageIO;import java.awt.*;import java.awt.image.BufferedImage;impo ...

  9. node 图片验证码生成

    var captchapng = require('captchapng'); var http = require("http") var server = http.creat ...

随机推荐

  1. Ubuntu上安装Minecraft服务器

    Minecraft由于其独特的魅力吸引了很多玩家.不过游戏的乐趣只有在和朋友一起玩的时候才最有意思,所以很早以前我就想建设自己的服务器.但由于专业知识欠缺,没有实现. 最近接触了Linux服务器,所以 ...

  2. java的继承

    1.什么是继承:一个类从另外一个类中得到成员.属性和行为方法等. 案例: //父类 public class Animal { // 变量 public int height=1; // 方法 pub ...

  3. oracle DBMS_LOCK.SLEEP()的使用

    create or replace procedure times isii positive:=1;beginloop dbms_lock.sleep(1);dbms_output.put_line ...

  4. springboot使用之四:错误页面404处理建议

    每个项目可能都会遇到404,403,500等错误代码,如没有错误页面,则会给用户一个很不友好的界面,springboot项目同样也存在这个问题. 但在官方文档并没有相关配置信息,这就要求我们自己来实现 ...

  5. POJ 2151 Check the difficulty of problems (概率DP)

    题意:ACM比赛中,共M道题,T个队,pij表示第i队解出第j题的概率 ,求每队至少解出一题且冠军队至少解出N道题的概率. 析:概率DP,dp[i][j][k] 表示第 i 个队伍,前 j 个题,解出 ...

  6. 转载:[转]如何学好3D游戏引擎编程

      [转]如何学好3D游戏引擎编程 Albert 本帖被 gamengines 从 游戏引擎(Game Engine) 此文为转载,但是值得一看. 此篇文章献给那些为了游戏编程不怕困难的热血青年,它的 ...

  7. 算法入门笔记------------Day4

    1.WERTYU 输入一个错位后敲出的字符串,输出打字员本来想打出的字 #include<stdio.h> char *s="`1234567890-=QWERTYUIOP[]\ ...

  8. 7.4 MVC vs MVP

    MVC(Model_view_contraller)"模型_视图_控制器". MVC应用程序总是由这三个部分组成.Event(事件)导致Controller改变Model或View ...

  9. C# .NET 隐藏窗体

    隐藏窗体,打开窗体后如果想让它隐藏,然后再显示出来,就判断是不是NULL或者有没有关闭,不然就NEW一个出来,否则就SHOW出来. 当然如果有隐藏的话退出的时候最好用Application.Exit( ...

  10. Android中实现倒计时

    1.需求 弹出提示的dialog,实现倒计时,结束后关闭dialog 2.dialog界面布局 <?xml version="1.0" encoding="utf- ...