发明名称 一种图片验证码的生成方法
摘要 本发明提供一种图片验证码的生成方法,包括以下步骤:(1)生成背景图像,并且该背景图像的颜色在该背景图像中呈从一种颜色到另一种颜色的渐变;(2)从字符集中随机选取4~6个字符生成字符串图像,然后,生成字符串图像的颜色,使得字符串图像的颜色与背景图像的颜色相近但人眼能区分开;(3)利用基于Bezier曲面的字符串变形方法对字符串图像进行变形;(4)根据变形后的字符串图像中的各字符的颜色和大小生成具有相应的颜色和大小的噪声,并将该噪声添加到相应的字符周围;(5)将背景图像和字符串图像进行融合,从而获得图片验证码。该方法能够设计出更合理、更安全的验证码。
申请公布号 CN101923702B 申请公布日期 2012.02.01
申请号 CN201010261634.4 申请日期 2010.08.25
申请人 郝红卫;王志彬;殷绪成 发明人 郝红卫;王志彬;殷绪成;迟昭娟
分类号 G06T1/00(2006.01)I 主分类号 G06T1/00(2006.01)I
代理机构 代理人
主权项 一种图片验证码的生成方法,包括以下步骤:(1)生成背景图像,并且该背景图像的颜色在该背景图像中呈从一种颜色到另一种颜色的渐变;(2)从字符集中随机选取4~6个字符生成字符串图像,然后,生成所述字符串图像的颜色,使得所述字符串图像的颜色与所述背景图像的颜色相近但人眼能区分开;(3)利用基于Bezier曲面的字符串变形方法对步骤(2)中得到的字符串图像进行变形,获得变形后的字符串图像;(4)根据步骤(3)中得到的变形后的字符串图像中的各字符的颜色和大小生成具有相应的颜色和大小的噪声,并将该噪声添加到相应的字符周围;(5)将步骤(1)中得到的背景图像和步骤(4)中得到的字符串图像进行融合,从而获得图片验证码,其中,通过颜色产生器分别生成所述背景图像的颜色和所述字符串图像的颜色,该颜色产生器通过调节红、绿、蓝三种原色的值以及颜色的透明度值,从而生成多变的颜色,其中,红色、绿色、蓝色和透明度分别用r、g、b、alpha表示,所述背景图像为矩形,该背景图像的颜色的渐变过程包括以下步骤:(i)生成矩形空白背景图像,用A、C、D、B四个顶点逆时针表示该矩形,该矩形的宽为W,长为L,建立以顶点C为原点的坐标系,以边CA为y轴,以边CD为x轴,以(r,g,b,alpha)表示背景图像中的点的颜色值;(ii)设定各顶点A、B、C、D和对角线BC的颜色值,其中,令A点的颜色值为:(r1,g1,b1,alpha1),D点的颜色值为:(r2,g2,b2,alpha2),B点和C点及对角线BC上的点的颜色值均为(r3,g3,b3,alpha3),其中r3=(r1+r2)/2,g3=(g1+g2)/2,b3=(b1+b2)/2,alpha3=(alpha1+alpha2)/2;(iii)根据顶点A、B、C、D的颜色值计算边AC、BD上的点的颜色值,其中,以坐标(0,i)表示边AC上的点,该点的颜色值为(ri,gi,bi,alphai),其中ri=i×(rA+rC)/W,bi=i×(bA+bC)/W,gi=i×(gA+gC)/W,alphai=i×(alphaA+alphaC)/W,W为矩形背景图像的宽,0<i<W,以坐标(L,j)表示边BD上的点,该点的颜色值为(rj,gj,bj,alphaj),其中rj=j×(rB+rD)/W,bj=j×(bB+bD)/W,gj=j×(gB+gD)/W,alphaj=j×(alphaB+alphaD)/W,W为矩形背景图像的宽,0<j<W;(iv)计算背景图像中的其它点的颜色值,使得在ABC区域内,颜色沿x轴方向从边AC到对角线BC渐变,在BDC区域内,颜色沿x轴方向从对角线BC到边BD渐变。
地址 100083 北京市科技大学信息工程学院计算机系