CN106295306A - 一种图片验证码的生成方法 - Google Patents

一种图片验证码的生成方法 Download PDF

Info

Publication number
CN106295306A
CN106295306A CN201610667880.7A CN201610667880A CN106295306A CN 106295306 A CN106295306 A CN 106295306A CN 201610667880 A CN201610667880 A CN 201610667880A CN 106295306 A CN106295306 A CN 106295306A
Authority
CN
China
Prior art keywords
picture
width
height
gif
array
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201610667880.7A
Other languages
English (en)
Other versions
CN106295306B (zh
Inventor
潘欣
赵健
孙宏彬
佘向飞
王鑫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Changchun Institute of Applied Chemistry of CAS
Changchun Institute Technology
Original Assignee
Changchun Institute Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Changchun Institute Technology filed Critical Changchun Institute Technology
Priority to CN201610667880.7A priority Critical patent/CN106295306B/zh
Publication of CN106295306A publication Critical patent/CN106295306A/zh
Application granted granted Critical
Publication of CN106295306B publication Critical patent/CN106295306B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/36User authentication by graphic or iconic representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2133Verifying human interaction, e.g., Captcha

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Image Analysis (AREA)

Abstract

一种图片验证码的生成方法,本发明涉及图片验证码的生成方法。本发明是为了解决现有提高网络爬虫或机器人程序识别图片验证码的难度的同时也阻挡了普通用户识别图片验证码中内容的缺点。具体是按照以下步骤进行的:一、输入验证码GIF图片显示需要的文本信息,输入验证码GIF图片的宽度W和高度H,验证码GIF图片所对应的帧数;二、将文本信息绘制在图片上并转换为由0和1构成的模板二维数组;三、在256级灰度图片上随机绘制纹理并将该图片换为由0到255数值构成的纹理二维数组;四、将所有输出验证码GIF图片所对应的帧数个图片放入图片列表之中;五、将GIF动态图片文件作为图片验证码输出。本发明用于图片验证码生成领域。

Description

一种图片验证码的生成方法
技术领域
本发明涉及图片验证码的生成方法。
背景技术
随着互联网技术的发展,人们工作、学习、生活越来越多的依赖于互联网提供的资源。一些不法分子会利用于“网络爬虫”或“机器人程序”自动的访问网络资源,进行垃圾邮件的攻击、注册验证短信攻击、在线投票系统上的虚假投票、大量购买限购商品或车票以及对网站进行饱和攻击。为了阻挡“网络爬虫”或“机器人程序”对网站资源的访问,各种基于互联网的系统通常会采用图片验证码的方式进行验证,如果用户可以识别出验证码并输入正确的内容那么允许继续访问系统资源,反之不允许继续访问。
随着人工智能技术的快速发展,计算机程序已经可以自动识别系统生成的图片验证码。而为了防止图片验证码被识别,现有的技术通常采用的手段是:变换字体、扭曲变形文字、加入杂点或色块、拉伸平移文字以及加入干扰文字来防止计算机程序自动识别。由于目前的人工智能识别能力已经很强,当前技术采用的方式会遇到一个两难的境地:如果图片验证码中的文字扭曲变形的不够,那么计算机智能程序可以很容易的识别其内容,起不到防护目的;如果内容过度的变化扭曲,那么普通用户也会难于识别出其中的内容,会把正常用户也阻挡在系统之外。
因此需要提供一种新的图片验证码的生成方法和装置来解决现有问题,提高“网络爬虫”或“机器人程序”识别图片验证码的难度的同时不阻挡普通用户识别图片验证码中的内容。
发明内容
本发明的目的是为了解决现有技术提高“网络爬虫”或“机器人程序”识别图片验证码的难度的同时也阻挡了普通用户识别图片验证码中内容的缺点,而提出一种图片验证码的生成方法。
一种图片验证码的生成方法具体是按照以下步骤进行的:
步骤一、输入验证码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图片所对应的帧数个图片放入图片列表之中;
步骤五、将图片列表中的验证码GIF图片所对应的帧数个图片转换为GIF动态图片文件,将GIF动态图片文件作为图片验证码输出。
本发明的有益效果为:
针对现有技术存在的问题,本发明提供一种图片验证码的生成方法,通过该方法可以生成一个由动态GIF图片构成的图片验证码,该验证码内部包含的文字内容不需要经过变形或扭曲,正常的用户观察该图片会有在满是杂色纹理背景下浮现出文字的感觉,识别其中内容较为容易;而人工智能程序加载该图片之后,在该动态图片的任何一帧画面均是由杂乱的线条构成的,其中不包含验证文字信息,程序无法识别其中的内容。
利用该方法生成的图片验证码,“网络爬虫”或“机器人程序”较难识别,而普通用户较容易识别;利用该技术可以有效的帮助各种基于互联网的系统阻挡“网络爬虫”或“机器人程序”的随意访问,而不阻挡普通使用者;可以极大的提高基于互联网的系统的安全性。经测试普通使用者在注视10秒之内便可以识别出图片中包含的文字,而基于SHIFT、神经网、支持向量机等智能算法的人工智能程序均无法识别出验证码内部的文字。
附图说明
图1为本发明流程图;
图2为本发明构成模板二维数组流程图;
图3为本发明构成纹理二维数组流程图;
图4为本发明构建图片列表过程流程图;
图5为本发明图片验证码输出结果流程图。
图6为本发明实施例生成的白色图片文件,将文本内容写在白色的背景上的示意图;
图7为本发明实施例生成的256级灰度图;
图8为本发明实施例生成的一种文字浮在纹理之上的动态示意图。
具体实施方式
具体实施方式一:结合图1说明本实施方式,本实施方式的一种图片验证码的生成方法具体是按照以下步骤进行的:
步骤一、输入验证码GIF图片显示需要的文本信息text,输入验证码GIF图片的宽度W和高度H,输入验证码GIF图片所对应的帧数frameNumber;
所述宽度W取值范围为100≤W≤1000;高度H取值范围为100≤H≤1000;GIF图片为动态图片;
文本信息是方法使用者(比如网站的服务程序、安全管理程序)输入的,比如网站需要显示的验证码;
步骤二、生成一个宽度width为W和高度height为H的白色背景的空白图片(宽度高度是方法使用者输入的),将文本信息以黑色绘制在白色背景的空白图片上,将绘制后的图片转换为由0和1构成的模板二维数组MaskArray;
步骤三、生成一个宽度width为W和高度height为H的256级灰度图片,在该256级灰度图片上的随机位置绘制LineNum条宽度随机、颜色随机的直线,将绘制后的256级灰度图片转换为由0到255数值构成的纹理二维数组BmpArray;
所述LineNum为行数;
步骤四、随机生成二维方向矢量v,建立图片列表BmpList,根据二维方向矢量v、模板二维数组MaskArray和图片列表BmpArray输出验证码GIF图片所对应的帧数frameNumber个图片,将所有输出验证码GIF图片所对应的帧数个图片放入图片列表BmpList之中;
步骤五、将图片列表BmpList中的验证码GIF图片所对应的帧数frameNumber个图片转换为GIF动态图片文件GIFFile,将GIF动态图片文件GIFFile作为图片验证码输出。
具体实施方式二:结合图2说明本实施方式,本实施方式与具体实施方式一不同的是:所述步骤二中生成一个宽度width为W和高度height为H的白色背景的空白图片(宽度高度是方法使用者输入的),将文本信息以黑色绘制在白色背景的空白图片上,将绘制后的图片转换为由0和1构成的模板二维数组MaskArray;具体过程为:
步骤二一、生成一个宽度width为W和高度height为H的白色背景的空白图片文件WhiteBMP;
步骤二二、将文本信息以黑色方式绘制在一个宽度为W和高度为H的白色背景的空白图片文件WhiteBMP上;
步骤二三、建立一个宽度width为W和高度height为H的模板二维数组MaskArray;
步骤二四、对于绘制后的宽度为W和高度为H的白色背景的空白图片文件WhiteBMP中的每一个像元,如果该像元为白色,则模板二维数组MaskArray的对应位置(MashArray的元素个数与WhiteBMP图片的像元个数完全相同,MashArray的每一个元素与WhiteBMP的像元一一对应。)元素赋值为0;如果该像元为黑色,则模板二维数组MaskArray的对应位置元素赋值为1。
其它步骤及参数与具体实施方式一相同。
具体实施方式三:本实施方式与具体实施方式一或二不同的是:所述步骤三中生成一个宽度width为W和高度height为H的256级灰度图片,在该256级灰度图片上的随机位置绘制LineNum条宽度随机、颜色随机的直线,将绘制后的256级灰度图片转换为由0到255数值构成的纹理二维数组BmpArray;具体过程为:
LineNum的值通过如下公式计算:
LineNum=(width+height)×20。
其它步骤及参数与具体实施方式一或二相同。
具体实施方式四:结合图3说明本实施方式,本实施方式与具体实施方式一至三之一不同的是:所述步骤三中生成一个宽度width为W和高度height为H的256级灰度图片,在该256级灰度图片上的随机位置绘制LineNum条宽度随机、颜色随机的直线,将绘制后的256级灰度图片转换为由0到255数值构成的纹理二维数组BmpArray;具体过程为:
步骤三一、生成一个宽度width为W和高度height为H的256级灰度图片GrayBMP;
步骤三二、将条宽度随机、颜色随机的直线的个数计数器LineCounter的值置为LineNum;
步骤三三、当LineCounter大于0时转到步骤三四,否则转到步骤三七;
所述LineCounter为条宽度随机、颜色随机的直线的个数计数器;
步骤三四、生成6个在区间(0,1)范围内的随机变量r1,r2,r3,r4,r5,r6;
步骤三五、在一个宽度width为W和高度height为H的256级灰度图片GrayBMP上绘制一条直线,该直线的起点坐标为(r1×height,r2×width),终点坐标为(r1×height+r3×20,r2×width+r4×20),宽度为2+r5×5,颜色灰度为r6×255;
所述r1×height为直线的起点横坐标,r2×width为直线的起点纵坐标;r1×height+r3×20为直线的终点横坐标,r2×width+r4×20直线的终点纵坐标;height为高度,width为宽度;
步骤三六、LineCounter自减1,转到步骤三三;
步骤三七、建立一个宽度width为W和高度height为H的纹理二维数组BmpArray;
步骤三八、对于一个宽度width为W和高度height为H的256级灰度图片GrayBMP的每一个像元,取出每一个像元的灰度值,将灰度值存储在纹理二维数组BmpArray的对应位置(GrayBmp是按照行和列存储的图片,而BmpArray是按照行和列存储的二维数组,它们的元素个数一致,按照行和列进行对应。)的元素中。
其它步骤及参数与具体实施方式一至三之一相同。
具体实施方式五:结合图4说明本实施方式,本实施方式与具体实施方式一至四之一不同的是:所述步骤四中随机生成二维方向矢量v,建立图片列表BmpList,根据二维方向矢量v、模板二维数组MaskArray和图片列表BmpArray输出验证码GIF图片所对应的帧数frameNumber个图片,将所有输出验证码GIF图片所对应的帧数个图片放入图片列表BmpList之中;具体过程为:
步骤四一、随机生成二维方向矢量v=(v1,v2),其中v1,v2均为-2到2之间的随机整数;
所述v1为二维方向矢量的横坐标,v2为二维方向矢量的纵坐标;
步骤四二、建立图片列表BmpList,将图片列表BmpList置为空;
将步骤三得到的纹理二维数组BmpArray复制三次,获得三个数组暂存数组1TempArray1、暂存数组2TempArray2和暂存数组3TempArray3;
建立一个空白的宽度width为W和高度height为H的图片FrameBMP;
步骤四三、将帧的个数计数器frameCounter的值置为输入验证码GIF图片所对应的帧数frameNumber;
步骤四四、当帧的个数计数器frameCounter大于0则转到步骤四五,否则转到步骤四十;
步骤四五、按照二维方向矢量v的方向将暂存数组1TempArray1数组中的所有元素移动并存回暂存数组1TempArray1数组之中;
暂存数组1TempArray1数组中元素的原始位置坐标为(origX,origY),移动后的位置坐标为(disX,disY);
步骤四六、按照二维方向矢量v的反方向将暂存数组2TempArray2数组中的所有元素移动并存回暂存数组2TempArray2数组之中;
暂存数组2TempArray2数组中元素的原始位置坐标为(origX,origY),移动后的位置坐标为(disX,disY);
步骤四七、对于模板二维数组MaskArray中的每一个元素,如果该元素值为0那么将暂存数组1TempArray1数组中每个位置元素值复制到暂存数组3TempArray3的对应位置,如果该元素值为1那么将暂存数组2TempArray2数组中每个位置元素值复制到暂存数组3TempArray3的对应位置;
步骤四八、将暂存数组3TempArray3数组转换为灰度图片存储到FrameBMP之中,并将FrameBMP加入到图片列表BmpList之中;
步骤四九、帧的个数计数器frameCounter自减1,转到步骤四四;
步骤四十、结束图片列表BmpList建立过程。
其它步骤及参数与具体实施方式一至四之一相同。
具体实施方式六:本实施方式与具体实施方式一至五之一不同的是:所述步骤四五中移动后的位置坐标(disX,disY)计算公式表示为:
disX=(origX+v1+2×height)%height;
disY=(origY+v2+2×width)%width;
所述v1为二维方向矢量的横坐标,v2为二维方向矢量的纵坐标,%为求余数操作;disX为移动后的位置坐标的横坐标,disY为移动后的位置坐标的纵坐标。
其它步骤及参数与具体实施方式一至五之一相同。
具体实施方式七:本实施方式与具体实施方式一至六之一不同的是:所述步骤四六中移动后的位置坐标(disX,disY)计算公式表示为:
disX=(origX-v1+2×height)%height;
disY=(origY-v2+2×width)%width;
所述v1为二维方向矢量的横坐标,v2为二维方向矢量的纵坐标,%为求余数操作;disX为移动后的位置坐标的横坐标,disY为移动后的位置坐标的纵坐标。
其它步骤及参数与具体实施方式一至六之一相同。
具体实施方式八:结合图5说明本实施方式,本实施方式与具体实施方式一至七之一不同的是:所述步骤五中将图片列表BmpList中的验证码GIF图片所对应的帧数frameNumber个图片转换为GIF动态图片文件GIFFile,将GIF动态图片文件GIFFile作为图片验证码输出;具体过程为:
步骤五一、建立宽度width为W和高度height为H的GIF动态图片文件GIFFile;
步骤五二、指定GIF动态图片文件GIFFile每一帧的显示持续时间为0.2秒;
步骤五三、将图片列表BmpList中的每一个图片转换为GIF图片的一帧,加入到GIF动态图片文件GIFFile之中;
步骤五四、将GIF动态图片文件GIFFile作为图片验证码输出。
其它步骤及参数与具体实施方式一至七之一相同。
采用以下实施例验证本发明的有益效果:
实施例一:
本实施例一种图片验证码的生成方法具体是按照以下步骤制备的:
1.假设步骤一输入的text为“TOM123”,帧数frameNumber为100,宽度width=214,高度height=71;
2.在步骤二,生成了白色图片文件WhiteBMP,将文本内容写在白色的背景上,如图6;
对应WhiteBMP.bmp这个文件;
3.在步骤三生成的256级灰度图片GrayBMP,其内容如图7:
对应GrayBMP.bmp这个文件
4.在步骤四生成的BmpList包含100个文件,对应BmpList里面100个图片文件
5.生成的GIFFile,对应GIFFile.gif这个文件,这个文件动态播放的时候由于模板二维数组MaskArray里面为0的像元和为1的像元移动方向相对,给观察者一种文字浮在纹理之上的感觉,如图8,使用时需要播放GIFFile.gif,图8为动态图。
本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,本领域技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

Claims (8)

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图片所对应的帧数个图片放入图片列表之中;
步骤五、将图片列表中的验证码GIF图片所对应的帧数个图片转换为GIF动态图片文件,将GIF动态图片文件作为图片验证码输出。
2.根据权利要求1所述一种图片验证码的生成方法,其特征在于:所述步骤二中生成一个宽度为W和高度为H的白色背景的空白图片,将文本信息以黑色绘制在白色背景的空白图片上,将绘制后的图片转换为由0和1构成的模板二维数组;具体过程为:
步骤二一、生成一个宽度为W和高度为H的白色背景的空白图片文件;
步骤二二、将文本信息以黑色方式绘制在一个宽度为W和高度为H的白色背景的空白图片文件上;
步骤二三、建立一个宽度为W和高度为H的模板二维数组;
步骤二四、对于绘制后的宽度为W和高度为H的白色背景的空白图片文件中的每一个像元,如果该像元为白色,则模板二维数组的对应位置元素赋值为0;如果该像元为黑色,则模板二维数组的对应位置元素赋值为1。
3.根据权利要求2所述一种图片验证码的生成方法,其特征在于:所述步骤三中生成一个宽度为W和高度为H的256级灰度图片,在该256级灰度图片上的随机位置绘制LineNum条宽度随机、颜色随机的直线,将绘制后的256级灰度图片转换为由0到255数值构成的纹理二维数组;具体过程为:
LineNum的值通过如下公式计算:
LineNum=(width+height)×20。
4.根据权利要求3所述一种图片验证码的生成方法,其特征在于:所述步骤三中生成一个宽度为W和高度为H的256级灰度图片,在该256级灰度图片上的随机位置绘制LineNum条宽度随机、颜色随机的直线,将绘制后的256级灰度图片转换为由0到255数值构成的纹理二维数组;具体过程为:
步骤三一、生成一个宽度为W和高度为H的256级灰度图片;
步骤三二、将条宽度随机、颜色随机的直线的个数计数器的值置为LineNum;
步骤三三、当LineCounter大于0时转到步骤三四,否则转到步骤三七;
所述LineCounter为条宽度随机、颜色随机的直线的个数计数器;
步骤三四、生成6个在区间(0,1)范围内的随机变量r1,r2,r3,r4,r5,r6;
步骤三五、在一个宽度为W和高度为H的256级灰度图片上绘制一条直线,该直线的起点坐标为(r1×height,r2×width),终点坐标为(r1×height+r3×20,r2×width+r4×20),宽度为2+r5×5,颜色灰度为r6×255;
所述,r1×height为直线的起点横坐标,r2×width为直线的起点纵坐标;r1×height+r3×20为直线的终点横坐标,r2×width+r4×20直线的终点纵坐标;height为高度,width为宽度;
步骤三六、LineCounter自减1,转到步骤三三;
步骤三七、建立一个宽度为W和高度为H的纹理二维数组;
步骤三八、对于一个宽度为W和高度为H的256级灰度图片的每一个像元,取出每一个像元的灰度值,将灰度值存储在纹理二维数组的对应位置的元素中。
5.根据权利要求4所述一种图片验证码的生成方法,其特征在于:所述步骤四中随机生成二维方向矢量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,转到步骤四四;
步骤四十、结束图片列表建立过程。
6.根据权利要求5所述一种图片验证码的生成方法,其特征在于:所述步骤四五中移动后的位置坐标(disX,disY)计算公式表示为:
disX=(origX+v1+2×height)%height;
disY=(origY+v2+2×width)%width;
所述,v1为二维方向矢量的横坐标,v2为二维方向矢量的纵坐标,%为求余数操作;disX为移动后的位置坐标的横坐标,disY为移动后的位置坐标的纵坐标。
7.根据权利要求6所述一种图片验证码的生成方法,其特征在于:所述步骤四六中移动后的位置坐标(disX,disY)计算公式表示为:
disX=(origX-v1+2×height)%height;
disY=(origY-v2+2×width)%width。
8.根据权利要求7所述一种图片验证码的生成方法,其特征在于:所述步骤五中将图片列表中的验证码GIF图片所对应的帧数个图片转换为GIF动态图片文件,将GIF动态图片文件作为图片验证码输出;具体过程为:
步骤五一、建立宽度为W和高度为H的GIF动态图片文件;
步骤五二、指定GIF动态图片文件每一帧的显示持续时间为0.2秒;
步骤五三、将图片列表中的每一个图片转换为GIF图片的一帧,加入到GIF动态图片文件之中;
步骤五四、将GIF动态图片文件作为图片验证码输出。
CN201610667880.7A 2016-08-15 2016-08-15 一种图片验证码的生成方法 Active CN106295306B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610667880.7A CN106295306B (zh) 2016-08-15 2016-08-15 一种图片验证码的生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610667880.7A CN106295306B (zh) 2016-08-15 2016-08-15 一种图片验证码的生成方法

Publications (2)

Publication Number Publication Date
CN106295306A true CN106295306A (zh) 2017-01-04
CN106295306B CN106295306B (zh) 2019-02-01

Family

ID=57670539

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610667880.7A Active CN106295306B (zh) 2016-08-15 2016-08-15 一种图片验证码的生成方法

Country Status (1)

Country Link
CN (1) CN106295306B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019179028A1 (zh) * 2018-03-21 2019-09-26 平安科技(深圳)有限公司 电子装置、基于动态图片的用户验证方法及存储介质
CN111859354A (zh) * 2020-07-21 2020-10-30 百度在线网络技术(北京)有限公司 图片验证方法、装置、电子设备和计算机可读存储介质
CN112907436A (zh) * 2021-02-02 2021-06-04 深圳市显控科技股份有限公司 基于OpenGL的线型绘制方法、系统及介质
CN112907436B (zh) * 2021-02-02 2024-06-07 深圳市显控科技股份有限公司 基于OpenGL的线型绘制方法、系统及介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102254355A (zh) * 2011-07-05 2011-11-23 周圣云 一种立体验证码的生成方法和装置
CN103902875A (zh) * 2014-03-04 2014-07-02 百度在线网络技术(北京)有限公司 验证码图片的生成方法和装置及验证方法和装置
CN104657654A (zh) * 2014-12-22 2015-05-27 河海大学 一种利用人眼视觉补偿原理的图片验证码生成方法
CN104700441A (zh) * 2015-02-05 2015-06-10 北京京东尚科信息技术有限公司 一种图片验证码生成方法及系统
CN105574399A (zh) * 2015-12-22 2016-05-11 安徽一拓通信科技集团股份有限公司 一种图形验证码的生成方法
CN105787340A (zh) * 2016-03-18 2016-07-20 厦门大学嘉庚学院 基于文本粘连与视觉补偿的图片验证码实现方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102254355A (zh) * 2011-07-05 2011-11-23 周圣云 一种立体验证码的生成方法和装置
CN103902875A (zh) * 2014-03-04 2014-07-02 百度在线网络技术(北京)有限公司 验证码图片的生成方法和装置及验证方法和装置
CN104657654A (zh) * 2014-12-22 2015-05-27 河海大学 一种利用人眼视觉补偿原理的图片验证码生成方法
CN104700441A (zh) * 2015-02-05 2015-06-10 北京京东尚科信息技术有限公司 一种图片验证码生成方法及系统
CN105574399A (zh) * 2015-12-22 2016-05-11 安徽一拓通信科技集团股份有限公司 一种图形验证码的生成方法
CN105787340A (zh) * 2016-03-18 2016-07-20 厦门大学嘉庚学院 基于文本粘连与视觉补偿的图片验证码实现方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
刘佳: "《C#生成网站验证码》", 《福建电脑》 *
刘华煜等: "《用PHP实现的浮动验证码》", 《电脑知识与技术》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019179028A1 (zh) * 2018-03-21 2019-09-26 平安科技(深圳)有限公司 电子装置、基于动态图片的用户验证方法及存储介质
CN111859354A (zh) * 2020-07-21 2020-10-30 百度在线网络技术(北京)有限公司 图片验证方法、装置、电子设备和计算机可读存储介质
CN111859354B (zh) * 2020-07-21 2023-09-01 百度在线网络技术(北京)有限公司 图片验证方法、装置、电子设备、存储介质和程序产品
CN112907436A (zh) * 2021-02-02 2021-06-04 深圳市显控科技股份有限公司 基于OpenGL的线型绘制方法、系统及介质
CN112907436B (zh) * 2021-02-02 2024-06-07 深圳市显控科技股份有限公司 基于OpenGL的线型绘制方法、系统及介质

Also Published As

Publication number Publication date
CN106295306B (zh) 2019-02-01

Similar Documents

Publication Publication Date Title
Xie et al. Spatial-temporal disparities, saving potential and influential factors of industrial land use efficiency: A case study in urban agglomeration in the middle reaches of the Yangtze River
CN104992657B (zh) mura补偿模块和方法、显示装置和方法
Jeong et al. An estimation model for determining the annual energy cost budget in educational facilities using SARIMA (seasonal autoregressive integrated moving average) and ANN (artificial neural network)
CN104238863B (zh) 基于Android的圈选缩放方法和系统
Zeng et al. A novel interval grey prediction model considering uncertain information
Desai Importance of literacy in India’s economic growth
Hao et al. How to improve environment, resources and economic efficiency in the digital era?
CN102831427B (zh) 一种融合视觉显著性和灰度共生矩的纹理特征提取方法
CN102110284B (zh) 信息处理设备及信息处理方法
CN104123608B (zh) 一种建立记账记录的方法与装置
Wang et al. Assessing the role of public attention in China's wastewater treatment: A spatial perspective
CN106529549B (zh) 基于自适应特征和离散余弦变换的视觉显著性检测方法
CN112580684A (zh) 基于半监督学习的目标检测方法、装置及存储介质
CN106295306A (zh) 一种图片验证码的生成方法
Ni et al. Spatiotemporal changes in sustainable development and its driving force in the Yangtze River Delta region, China
CN113887408A (zh) 活化人脸视频的检测方法、装置、设备及存储介质
Li et al. How policy diffusion influences regional BIM innovation: an empirical study in China
CN105957080A (zh) 基于频域对屏幕拍摄身份证照的识别方法
Li et al. An identification and positioning method for coal gangue based on lightweight mixed domain attention
CN111552679A (zh) 基于简单需求的快速建模方法及装置
Chen et al. Research on regional energy efficiency based on GIS technology and image quality processing
Li et al. Partial stability of probabilistic Boolean network
CN112037406A (zh) 一种智慧工地门禁方法、系统及设备
CN113255456A (zh) 非主动活体检测方法、装置、电子设备及存储介质
Hanyun et al. The Research of data mining analysis system based on Pearson relation

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant