利用ASPJPEG组件生成中文验证码

来源:互联网 发布:java中instanceof用法 编辑:程序博客网 时间:2024/05/17 10:55

 因为ASP与ASP.net无法共享Session,所以只能用ASP写,ASP没有自带的处理图片的组件,好在服务器支持ASPJPEG,所以写起来也比较容易。

  不过,运行起来有个小问题,就是不支持一些字体。只能默认使用宋体了。

Code.jpg文件下载(请点另键下载,并改名为Code.jpg)

下载Dv_GetCode.asp和Code.jpg文件压缩包

下面文件保存为Dv_GetCode.asp,并替换掉动网BBS上的Dv_GetCode.asp。 

文字部分,你可以替换成你自己喜欢的文字,如果是文言文更好,注意要把标点去掉,要不然验证码生成有标点符号的,很容易输入错误。

<
Response.Expires 
= -9999
Response.AddHeader 
"pragma""no-cache"
Response.AddHeader 
"cache-ctrol""no-cache"
Response.ContentType 
= "image/bmp"
'生成安全码的函数 
function make_randomize(max_len,w_n)'生成长度,w_n:0 可能包含字母,1:只为数字 
    randomize 

    txt
="澄海义工社是由澄海茶座爱心小组发展而来澄海茶座爱心小组创建于年当时在E京澄海茶座论坛上由一群热心网友发起成立以网络为平台在网上发贴发动网友募捐善款开展助学救困活动经过几年的发展澄海茶座爱心小组也从一个网络组织走到了现实世界社会上众多的爱心人士纷纷投身到爱心活动中来他们中有机关干部普通打工者老师私企老板等等爱心小组严格遵循先调查落实情况再确定助学救困对象的原则使基金每一分每一厘都用到确实有实际困难需要救助的对象身上多年来通过澄海茶座爱心小组资助的对象遍及澄海各乡镇年开始澄海茶座爱心小组成员经过多番努力在澄海区进行爱心助学扶贫救急活动筹得善款近多万元资助贫困学生近多人并开展帮助学活动固定每月援助部分贫困学生家庭元使这些贫困学生得以继续学业为了使这支队伍更加健康的发展澄海茶座爱心小组正式更名为澄海爱心义工社成为一个正式的义工组织并以参与互助奉献进步作为义工社的宗旨计划在未来以扶贫助困跟助学两条线为主轴开展各种爱心活动并且将我们的爱心无限的延伸"

    
'response.write 
    make_randomize=Mid(txt,Rnd*(Len(txt)-max_len)+1,max_len)
end function 
%
> 

<%
random_num
=make_randomize(4,1)   '生成4位的安全码 
randomize 

Session(
"GetCode")=random_num

Set Jpeg = Server.CreateObject("Persits.Jpeg")   '调用组件 
Jpeg.Open Server.MapPath("code.jpg")   '打开准备的图片 


Jpeg.Canvas.Font.Rotation 
= (Rnd*40-20)
Jpeg.Canvas.Font.Color 
= (Rnd*255)*255*255+255*255+(Rnd*255)
Jpeg.Canvas.Font.Family 
= "宋体"
Jpeg.Canvas.Font.Bold 
= false 
Jpeg.Canvas.Font.Size 
= 14
Jpeg.Canvas.PrintText 
20Mid(random_num,1,1)

Jpeg.Canvas.Font.Rotation 
= (Rnd*40-20)
Jpeg.Canvas.Font.Color 
= (Rnd*255)*255*255+255*255+(Rnd*255)
Jpeg.Canvas.Font.Family 
= "隶书"
Jpeg.Canvas.Font.Bold 
= false 
Jpeg.Canvas.Font.Size 
= 14
Jpeg.Canvas.PrintText 
200Mid(random_num,2,1)

Jpeg.Canvas.Font.Rotation 
= (Rnd*40-20)
Jpeg.Canvas.Font.Color 
= (Rnd*255)*255*255+255*255+(Rnd*255)
Jpeg.Canvas.Font.Family 
= "宋体"
Jpeg.Canvas.Font.Bold 
= false 
Jpeg.Canvas.Font.Size 
= 14
Jpeg.Canvas.PrintText 
380Mid(random_num,3,1)

Jpeg.Canvas.Font.Rotation 
= (Rnd*40-20)
Jpeg.Canvas.Font.Color 
= (Rnd*255)*255*255+255*255+(Rnd*255)
Jpeg.Canvas.Font.Family 
= "楷体"
Jpeg.Canvas.Font.Bold 
= false 
Jpeg.Canvas.Font.Size 
= 14
Jpeg.Canvas.PrintText 
540Mid(random_num,4,1)


jpeg.SendBinary 
'输出图片

%
>
原创粉丝点击