shotgraph组件输出图形时输出英文字母汉字数字

< %ychar = " 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,白,云 "   ' 将数字和大写字母组成一个字符串 
   yc = split (ychar, " , " ' 将字符串生成数组 
   ycodenum = 4  
   
for  i = 1   to  ycodenum 
   
Randomize  
   ycode
= ycode & yc( Int (( 37 * Rnd )))  ' 数组一般从0开始读取,所以这里为35*Rnd 
    next  
Response.ContentType
= " image/gif "     
   Response.Clear   
   
set  obj = Server.CreateObject( " shotgraph.image " )      
   x
= 125      
   y
= 26        
   obj.CreateImage x,y,
8        
   obj.SetColor 
0 , 55 , 126 , 222            
   obj.CreatePen 
" PS_SOLID " , 1 , 0       
   obj.SetBgColor 
0       
   obj.Rectangle 
0 , 0 ,x - 1 ,y - 1       
   obj.SetBkMode 
" TRANSPARENT "       
   obj.CreateFont 
" 宋体 " , 1 , 18 , 1 , true , False , False , False , True  
   obj.SetTextColor 
1       
   obj.TextOut 
5 , 4 ,ycode & "   "          
   img
= obj.GifImage( - 1 , 1 , "" )   
   Response.BinaryWrite (img)  %
>

 

obj.CreateFont "宋体",1,18,1,true,False,False,False,True 
随便解释这个给你听吧
宋体:这个不用解释了吧
1:这个就是设置字体的,他代表缺省字符集,英文是:default charset就是默认字体
18:n规定字体字符元或字符像素的高度。缺省高度值为零。也就是字体高度,也可以说是字体大小吧
1:参数规定正文基线和X-线的角度,单位为1/10度。
实际上上面这些参数就是用了:CreateFont sFamily, nCharset, nHeight, nAngle, bBold, bItalic, bUnderline, bStrikeOut [,bUnicode]  
这个函数的参数
sFamily 参数规定了字体的字样名。  
nCharset参数规定字符集代码。其中某些代码可以参考“备注”部分。 
nHeight参数规定字体字符元或字符像素的高度。缺省高度值为零。  
nAngle参数规定正文基线和X-线的角度,单位为1/10度。 
bBold 参数规定字体灰度。灰度值可以是布尔值或字符串。bBold 为True 时,为粗体,普通字体为 False。 
你还可以直接设定规定字体灰度的串。如果bBold为串,它可以为下面的任意一种串: 
bItalic参数设定为True时为斜体。 
bUnderline参数设定为True时为下划线字体。 
bStrikeOut 参数设定为True时为加删除线字体。
bUnicode参数为可选项。该函数设定为True时,将使用字体名字串的Unicode表示法。该函数设定为False时,使用的是ASCII表示法。缺省值为False。
最后这个参数,一般是数字和字母时都把它省略了不写
实际上CreateFont有9个参数,但很多都只写8个,省略了最后一个

 

0 - ANSI charset 
1 - default charset 
2 - symbol charset 
136 - Chinese Big5 
161 - Greek charset 
163 - Vietnamese charset 
204 - Cyrillic charset 
222 - Thai charset 
238 - East Europe charset 
一些字符集的代码:
0 - 美国国家标准化组织字符集
1 - 缺省字符集 
2 - 符号字符集 
136 - 中国大五码 
161 - 希腊字符集 
163 - 越南字符集 
204 - 古代斯拉夫语字符集 
222 - 泰国语字符集 
238 - 东欧字符集 

这个组建已经不太好找了,以前在国外网站上下载到的! 共享给大家! 大家经常在网上登陆的候经常会看到让你输入验证码,有的是文字的,有的呢是图片,比如chinaren.com校友录中留言的候,我们就会看到数字图片验证码;网上关于数字文字验证码实现方法的相关资料很多,而我们这里介绍的是数字和字母随机组成的并且生成图片的验证码的实现方法。看起来很复杂、其实很简单的,大家跟着我往下看: 首先,我们先介绍一下设计思路,数字和字母的随机组合生成验证码,然后将验证码生成图片,这里“数字和字母的组合”应该是随机取出来的;如果是专门的数字验证码,我们可以这样实现: ycodenum=4 '验证码的位数,或者说成个数 for i=1 to ycodenum Randomize '初始化随机数发生器 ycode=ycode&Int((9*Rnd)) 'rnd是随机数,从0到1之间的任意实数,这里获得0到9之间的整数 next response.write ycode '就可以输出数字验证码(4位) 然而,我们要让数字和字母同样随机生成,这里我们可以用到数组来实现这种效果,如下: ychar="0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z" '将数字和大写字母组成一个字符串 yc=split(char,",") '将字符串生成数组 ycodenum=4 for i=1 to ycodenum Randomize ycode=ycode&yc(Int((35*Rnd))) '数组一般从0开始读取,所以这里为35*Rnd next response.write ycode 现在看看输出结果是不是数字和字母随机组合的呢? 下面看看怎样生成图片,这个也许有些朋友知道:asp不能生成图片,必须使用asp组件。不错,我们这里使用的是ASP图象组件shotgraph。有一点大家注意,服务器不是自己的不能用哦,因为你装不了这组件。 我们看看生成图片的代码: ychar="0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z" '将数字和大写字母组成一个字符串 yc=split(char,",") '将字符串生成数组 ycodenum=4 for i=1 to ycodenum Randomize ycode=ycode&yc(Int((35*Rnd))) '数组一般从0开始读取,所以这里为35*Rnd next Response.Clear Response.ContentType="image/gif" set obj=Server.CreateObject("shotgraph.image") x=55 '图片的宽 y=26 '图片的高 obj.CreateImage x,y,8 '8是图片的颜色8位 obj.SetColor 0,55,126,222 obj.SetColor 1,255,255,255 obj.CreatePen "PS_SOLID",1,0 obj.SetBgColor 0 obj.Rectangle 0,0,x-1,y-1 obj.SetBkMode "TRANSPARENT" obj.CreateFont "Arial",136,18,1,False,False,False,False obj.SetTextColor 1 obj.TextOut 5,4,ycode&" " img=obj.GifImage(-1,1,"") Response.BinaryWrite (img)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一把编程的菜刀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值