[发明专利]一种图片验证码的生成方法有效
申请号: | 201610667880.7 | 申请日: | 2016-08-15 |
公开(公告)号: | CN106295306B | 公开(公告)日: | 2019-02-01 |
发明(设计)人: | 潘欣;赵健;孙宏彬;佘向飞;王鑫 | 申请(专利权)人: | 长春工程学院 |
主分类号: | G06F21/36 | 分类号: | G06F21/36 |
代理公司: | 哈尔滨市松花江专利商标事务所 23109 | 代理人: | 杨立超 |
地址: | 130012 *** | 国省代码: | 吉林;22 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 一种图片验证码的生成方法,本发明涉及图片验证码的生成方法。本发明是为了解决现有提高网络爬虫或机器人程序识别图片验证码的难度的同时也阻挡了普通用户识别图片验证码中内容的缺点。具体是按照以下步骤进行的:一、输入验证码GIF图片显示需要的文本信息,输入验证码GIF图片的宽度W和高度H,验证码GIF图片所对应的帧数;二、将文本信息绘制在图片上并转换为由0和1构成的模板二维数组;三、在256级灰度图片上随机绘制纹理并将该图片换为由0到255数值构成的纹理二维数组;四、将所有输出验证码GIF图片所对应的帧数个图片放入图片列表之中;五、将GIF动态图片文件作为图片验证码输出。本发明用于图片验证码生成领域。 | ||
搜索关键词: | 一种 图片 验证 生成 方法 | ||
【主权项】:
1.一种图片验证码的生成方法,其特征在于:一种图片验证码的生成方法具体是按照以下步骤进行的:步骤一、输入验证码GIF图片显示需要的文本信息,输入验证码GIF图片的宽度W和高度H,输入验证码GIF图片所对应的帧数;所述,宽度W取值范围为100≤W≤1000;高度H取值范围为100≤H≤1000;GIF图片为动态图片;步骤二、生成一个宽度为W和高度为H的白色背景的空白图片,将文本信息以黑色绘制在白色背景的空白图片上,将绘制后的图片转换为由0和1构成的模板二维数组;步骤三、生成一个宽度为W和高度为H的256级灰度图片,在该256级灰度图片上的随机位置绘制LineNum条宽度随机、颜色随机的直线,将绘制后的256级灰度图片转换为由0到255数值构成的纹理二维数组;所述LineNum为行数;步骤四、随机生成二维方向矢量v,建立图片列表,根据二维方向矢量v、模板二维数组和纹理二维数组输出验证码GIF图片所对应的帧数个图片,将所有输出验证码GIF图片所对应的帧数个图片放入图片列表之中;具体过程为:步骤四一、随机生成二维方向矢量v=(v1,v2),其中v1,v2均为‑2到2之间的随机整数;所述,v1为二维方向矢量的横坐标,v2为二维方向矢量的纵坐标;步骤四二、建立图片列表,将图片列表置为空;将步骤三得到的纹理二维数组复制三次,获得三个数组暂存数组1、暂存数组2和暂存数组3;建立一个空白的宽度为W和高度为H的图片FrameBMP;步骤四三、将帧的个数计数器的值置为输入验证码GIF图片所对应的帧数;步骤四四、当帧的个数计数器大于0则转到步骤四五,否则转到步骤四十;步骤四五、按照二维方向矢量v的方向将暂存数组1数组中的所有元素移动并存回暂存数组1数组之中;暂存数组1数组中元素的原始位置坐标为(origX,origY),移动后的位置坐标为(disX,disY);步骤四六、按照二维方向矢量v的反方向将暂存数组2数组中的所有元素移动并存回暂存数组2数组之中;暂存数组2数组中元素的原始位置坐标为(origX,origY),移动后的位置坐标为(disX,disY);步骤四七、对于模板二维数组中的每一个元素,如果该元素值为0那么将暂存数组1数组中每个位置元素值复制到暂存数组3的对应位置,如果该元素值为1那么将暂存数组2数组中每个位置元素值复制到暂存数组3的对应位置;步骤四八、将暂存数组3数组转换为灰度图片存储到FrameBMP之中,并将FrameBMP加入到图片列表之中;步骤四九、帧的个数计数器自减1,转到步骤四四;步骤四十、结束图片列表建立过程;步骤五、将图片列表中的验证码GIF图片所对应的帧数个图片转换为GIF动态图片文件,将GIF动态图片文件作为图片验证码输出。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于长春工程学院,未经长春工程学院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201610667880.7/,转载请声明来源钻瓜专利网。