在以前的日志中讲了怎么制作验证码,这篇就讲讲怎么给验证码加上起干扰效果的杂点。
其实很简单,首先做一个图片,这个图片的作用就是用来生成杂点的,每次都是从这个图片读取一定的字节,再把这些字节写入到验证码中生成杂点。下面是我制作的一个图片,当然你可以根据自己需要自己画。

剩下的就是代码了,就是在输出验证码之前即在如下的代码前加代码
Ados.Position=0
'直接向客户端发送图像数据
Response.ContentType = "image/BMP"
Response.BinaryWrite Ados.read()
Ados.Close:set Ados=nothing
Ados1.Close:set Ados1=nothing
'直接向客户端发送图像数据
Response.ContentType = "image/BMP"
Response.BinaryWrite Ados.read()
Ados.Close:set Ados=nothing
Ados1.Close:set Ados1=nothing
增加的代码如下:
set adoZd=server.CreateObject("adodb.stream")
adoZd.Mode=3
adoZd.Type=1
adoZd.Open
adoZd.LoadFromFile(Server.mappath("zd.bmp"))
for i=0 to 50 '50为生成的杂点的数量,你可以自己看着办
Randomize timer
'生成的随机数我是根据图像的大小定的,你可以根据你的图像大小定
rndI=Int(rnd*20) '图形的高度为20
rndI2=Int(rnd*4) '验证码是4位
rndI3=Int(rnd*60) '每个像素3字节,20就是60字节
adoZd.position=54+240*rndI+rndI2*60+rndI3
Ados.position=54+240*rndI+rndI2*60+rndI3
Ados.write adoZd.read(9) '从zd.bmp读取9个字节
next
adoZd.Mode=3
adoZd.Type=1
adoZd.Open
adoZd.LoadFromFile(Server.mappath("zd.bmp"))
for i=0 to 50 '50为生成的杂点的数量,你可以自己看着办
Randomize timer
'生成的随机数我是根据图像的大小定的,你可以根据你的图像大小定
rndI=Int(rnd*20) '图形的高度为20
rndI2=Int(rnd*4) '验证码是4位
rndI3=Int(rnd*60) '每个像素3字节,20就是60字节
adoZd.position=54+240*rndI+rndI2*60+rndI3
Ados.position=54+240*rndI+rndI2*60+rndI3
Ados.write adoZd.read(9) '从zd.bmp读取9个字节
next
站长工具
相关文章

请稍等,评论加载中...