[发明专利]一种图形验证码生成方法有效
申请号: | 201110234417.0 | 申请日: | 2011-08-16 |
公开(公告)号: | CN102360505A | 公开(公告)日: | 2012-02-22 |
发明(设计)人: | 蔡良木 | 申请(专利权)人: | 北京新媒传信科技有限公司 |
主分类号: | G06T11/00 | 分类号: | G06T11/00 |
代理公司: | 北京市隆安律师事务所 11323 | 代理人: | 权鲜枝 |
地址: | 100089 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 图形 验证 生成 方法 | ||
技术领域
本发明涉及互联网应用技术领域,特别是涉及一种图形验证码 生成方法。
背景技术
当前,在互联网应用中,很多网站为了防止用户利用机器人进 行自动注册、登录、灌水等,都采用了图形验证码技术。所谓图形 验证码就是将一串随机产生的数字或字符,生成一幅图片,图片里 还可以加上一些干扰像素,由用户肉眼识别其中的验证码信息,输 入表单提交网站验证,验证成功后才能使用某项功能。
目前普遍生成图形验证码的方法是:产生一个随机字符串,将 此字符串存到内存中,将此字符串生成图片显示给用户,用户根据 图片识别字符串并进行输入提交,服务器用内存中的字符串和用户 输入的字符串进行对比,一致则表示验证通过。
但是现有的从不同字符集生成图形验证码输出的方法,或者设 置不同字体大小、旋转、粗体或斜体等格式的图形验证码输出方法, 都存在字符重叠、模糊、或大或小等问题,即生成的图形验证码比 较粗糙,造成用户识别困难,进而输入错误的几率比较大,造成很 多不必要的网络流量和服务器的压力。
发明内容
本发明提供了一种图形验证码生成方法,该方法能够生成清晰 匀称的验证码,降低了用户的输错几率,减轻了服务器的压力。
为达到上述目的,本发明的技术方案是这样实现的:
本发明公开了一种图形验证码生成方法,该方法包括:
准备多个字符集;
计算所述多个字符集中的每个字符集中的每个字符在不同字 体大小和不同格式下的大小参数,并保存;所述大小参数包括:字 符宽度值W、字符高度值H、字符本身的左边距L和字符本身的上边 距T;
从所述多个字符集中选择一个字符集,从选择的字符集中随机 选择预设个数的字符,得到字符的集合S;
根据画布的高度和所选择字符集的字体大小配置范围确定输 出字体大小;
在画布上以所述确定的输出字体大小依次输出集合S中的各字 符,其中,在输出每个字符时:先确定当前输出字符的背景左边距 BL和背景上边距BT,然后根据该字符的W、H、L、T、BL和TL在 画布上输出该字符;
其中,BL是字符与画布左边缘之间的距离;TL是字符与画布 上边缘之间的距离。
在上述方法中,计算所述多个字符集中的每个字符集中的每个 字符在不同字体大小和不同格式下的大小参数包括:
遍历所述多个字符集中的每个字符集中的每个字符的不同字 体大小和不同格式,对于每个指定了字体大小和格式的字符执行一 下步骤:在纯色的背景画布上的顶着该画布的左上角输出指定颜色 的该字符,该字符的颜色与背景画布的颜色不同;通过从左到右, 从上到下的顺序依次提取背景画布上的每个像素,并比较其颜色, 确定该字符的W、H、L和T参数。
该方法进一步包括:为所述多个字符集中的每个字符集设置高 度比;
所述根据画布的高度和所选择字符集的字体大小配置范围确 定输出字体大小包括:
令MaxFontSize=[(画布高度-预设上边距)/所选择字符集的 高度比]下取整;其中,[]下取整为向下取整函数;
令MinFontSize=[MaxFontSize-第一预设值,所选择字符集配 置的最小字体]MAX;[]MAX为选取最大值函数;
在MinFontSize到MaxFontSize的范围内选择一种字体大小作为 输出字体大小。
所述预设上边距等于3个像素点的高度和;
所述第一预设值等于4个像素点的高度和。
在上述方法中,所述确定当前输出字符的背景左边距BL包括:
对于输出的第一个字符,其背景左边距BL取第二预设值;
对于后续输出的字符,其背景左边距BL根据所述第二预设值、 已输出字符的宽度总和以及在字符之间增加的间距常量确定。
所述第二预设值取5个像素点的宽度和与10个像素点的宽度和 之间的值。
在上述方法中,所述确定当前输出字符的上边距BT包括:
令Maxheight=画布高度-当前输出字符的高度值H-第三预设 值;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京新媒传信科技有限公司,未经北京新媒传信科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110234417.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:三工位隔离开关
- 下一篇:一种在离网型风光互补发电系统上实现检测电流的方法