本发明涉及图片验证码领域,具体地说是一种生成滑动验证码图片的方法。
背景技术:
目前的web系统为了防止爬虫或其他自动登录软件登录到系统,一般都采用验证码的方式用来区别是人为登录还是软件登录;验证码方式有很多种,现有的交互式的滑动验证码通过方法大部分是先用js记录下用户的鼠标移动轨迹,然后不断得收集不同的位置轨迹,以后遇到相同的位置,就用轨迹数组进行重播。其中图片滑动方式对用户比较友好,同时也能一定程度上增加破解的难度;随着人工智能技术的发展,图片破解技术也越来越强,这就对生成的图片验证码要求越来越高。
技术实现要素:
本发明的技术任务是提供一种生成滑动验证码图片的方法。
本发明的技术任务是按以下方式实现的:
一种生成滑动验证码图片的方法,该方法通过形成轮廓模板和根据轮廓模板从背景图片分离出滑动图片两部分,实现一对滑动图片验证码的两幅图片;所述的两幅图片:一幅是按照轮廓剪出的滑动图片,一幅是模糊掉轮廓部分的背景图片。
所述的轮廓模板是一副具有两种明显区别的颜色形成的轮廓图,对应所述的轮廓图准备一副背景图片。
所述的轮廓模板通过手工绘制或者程序生成。
将所述的轮廓图与背景图片加载到系统形成rgb模式的内存图片。
从所述的背景图片的随意一个位置做为基础坐标,然后通过与轮廓图进行比较,形成一幅按照轮廓图部分从背景图片分离出来的图片。
所述的轮廓图的像素分为两种类型:一种是背景部分,另一种是轮廓部分。
所述的两种类型的像素的rgb值明显区分。
扫描所述的轮廓图的每个像素,提取出轮廓图的像素坐标值,然后用此坐标值从背景图片中提取出滑动图片。
所述的从背景图片分离出来的图片进行模糊处理。
本发明的一种生成滑动验证码图片的方法和现有技术相比,可以产生复杂轮廓的验证码滑动图片,从而增加了破解的难度;本发明的实现比较简单,从成本上考虑比较经济;可以定期的替换滑动图片的形状,从而增强了图片破解的难度;从而保证了web系统的安全。
具体实施方式
实施例1:
一种生成滑动验证码图片的方法,该方法通过形成轮廓模板和根据轮廓模板从背景图片分离出滑动图片两部分,实现一对滑动图片验证码的两幅图片;所述的两幅图片:一幅是按照轮廓剪出的滑动图片,一幅是模糊掉轮廓部分的背景图片。
所述的轮廓模板是一副手工绘制的具有两种明显区别的颜色形成的轮廓图,对应所述的轮廓图准备一副背景图片;将所述的轮廓图与背景图片加载到系统形成rgb模式的内存图片;从所述的背景图片的随意一个位置做为基础坐标,然后通过与轮廓图进行比较,形成一幅按照轮廓图部分从背景图片分离出来的图片;所述的轮廓图的像素分为两种类型:一种是背景部分,另一种是轮廓部分;所述的两种类型的像素的rgb值明显区分;扫描所述的轮廓图的每个像素,提取出轮廓图的像素坐标值,然后用此坐标值从背景图片中提取出滑动图片;所述的从背景图片分离出来的图片进行模糊处理。
实施例2:
一种生成滑动验证码图片的方法,该方法通过形成轮廓模板和根据轮廓模板从背景图片分离出滑动图片两部分,实现一对滑动图片验证码的两幅图片;所述的轮廓模板是程序生成,最终生成的是一副具有两种明显区别的颜色形成的轮廓图(比如白色背景,用黑色画笔画一个圆形,定义黑色圆形为轮廓);有了此轮廓图,再准备一副背景图片就可以进行如下处理:将轮廓图与背景图片加载到系统形成rgb模式的内存图片;从背景图片的随意一个位置做为基础坐标,然后通过与轮廓图进行比较,从而形成一幅按照轮廓部分从背景分离出来的图片;比如轮廓图为100*100像素的图片,背景图片要选择长宽像素均大于等于100的图片,轮廓图的像素分为两种类型:一种是背景部分,另一种是轮廓部分;两种类型的像素的rgb值可以明显区分;通过扫描轮廓图的每个像素,从而提取出轮廓的像素坐标值,然后用此坐标值从背景图片中提取出滑动图片;背景分离的部分进行模糊处理;这样就得到了一对滑动图片验证码的两幅图片:一幅是按照轮廓剪出的滑动图片,一幅是模糊掉轮廓部分的背景图片。
通过上面具体实施方式,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的几种具体实施方式。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。