<%@ Page Language="VB" Debug="true" %>
 <%@ import Namespace =namespace="System"%>
 <%@ import Namespace =namespace="System.io"%>
 <%@ import Namespace =namespace="System.Drawing"%>
 <%@ import Namespace =namespace="System.Drawing.Imaging"%>
 <%@ import Namespace =namespace="System.Drawing.Bitmap"%>
 <%@ import Namespace =namespace="System.Drawing.Graphics"%>

<Script runat="server">
Dim RanNum As New Random
Dim intI as Integer

 Private Sub Page_Load()Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
CreateRanPic()
End Sub

 Sub CreateRanPic()Sub CreateRanPic()
'在此处放置初始化页的用户代码
'声明bitmap对象
'Bitmap对象就相当于一个画布,有了画布我们才可以在上面做出图形
Dim objBitmap As Bitmap
Dim i As Integer
'声明随机种子,用来随机产生1000个象素点的坐标
Dim objRandom As System.Random
Dim strRan As String = RndNum(6) '产生随机6位数
' Create Bitmap
objBitmap = New Bitmap(100, 30)
' Set 1000 Pixels
objRandom = New System.Random
For i = 1 To 7000
objBitmap.SetPixel(objRandom.Next(100), objRandom.Next(30), Color.White)
Next

'Dim ms as MemoryStream
Dim g as Graphics
g=Graphics.FromImage(objBitmap)
'----------------------
'建立显示的字体(Bold:加粗文本;Italic:倾斜文本:Regular:普通文本;Strikeout:中间有直线通过的文本;Underline:带下划线的文本.)
Dim font as Font =new Font("Times New Roman", 18, FontStyle.Italic)
'----------------------
g.DrawString(strRan,Font,(New SolidBrush(color.black)),1,1)'在矩形内绘制字串(字串,字体,画笔颜色,左上x.左上y)
'ms=New MemoryStream()
objBitmap.Save(Response.OutputStream,System.Drawing.Imaging.ImageFormat.Gif)
'objBitmap.Save(ms,System.Drawing.Imaging.ImageFormat.Gif)
'Response.ClearContent() '需要输出图象信息 要修改HTTP头
'Response.ContentType="image/Png"
'Response.BinaryWrite(ms.ToArray())
g.Dispose()
objBitmap.Dispose()
Response.End()
End Sub


'--------------------------------------------
'函数名称:RndNum
'函数参数:VCodeNum--设定返回随机字符串的位数
'函数功能:产生数字和字符混合的随机字符串
 Function RndNum()Function RndNum(VcodeNum)
dim Vchar as string="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,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"
dim VcArray() as string=split(Vchar,",") '将字符串生成数组
dim VNum as string=""

dim i as byte
For i=1 to VcodeNum
Randomize
'-------取得随机数-------------------------
'方法1:
VNum=VNum + VcArray(Int(61*Rnd)) '数组一般从0开始读取,所以这里为61*Rnd (共有62个字符,从0开始读,所以就为61)
'方法2:
'VNum=VNum + VcArray(CreateRandomNumber()) '这是自已改写的代码,使用Random.Next来取得随机数.
'-------------------------------
Next
Session("ValidateCode")=VNum '保存验证码
Return VNum
End Function

 Function CreateRandomNumber()Function CreateRandomNumber() as Integer
intI = RanNum.Next( 0, 62 )
Return intI
End Function

</Script>
发表于
2006-01-06 15:14
菲一打
阅读( 157)
评论()
收藏
举报
|