建立一個名為ValidateCode.aspx的頁面,粘貼以下代碼即可
Public Class ValidateCode
Inherits System.Web.UI.Page
#Region " Web 窗體設計器生成的代碼 "
'該調用是 Web 窗體設計器所必需的。
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
End Sub
'注意: 以下占位符聲明是 Web 窗體設計器所必需的。
'不要删除或移動它。
Private designerPlaceholderDeclaration As System.Object
Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
'CODEGEN: 此方法調用是 Web 窗體設計器所必需的
'不要使用代碼編輯器修改它。
InitializeComponent()
End Sub
#End Region
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'在此處放置初始化頁的使用者代碼
Me.CreateCheckCodeImage(GenerateCheckCode())
End Sub
Private Function GenerateCheckCode() As String
Dim number, i As Integer
Dim code As Char
Dim checkCode, returnCode As String
checkCode = String.Empty
returnCode = String.Empty
Dim random As System.Random = New Random
For i = 1 To 5
number = random.Next()
If number Mod 2 = 0 Then
code = Chr((number Mod 10) + 48)
Else
code = Chr((number Mod 26) + 65)
End If
If code = "0" Or code = "O" Then
i -= 1
Else
checkCode += code.ToString & " "
returnCode += code.ToString
End If
Next
Session.Add("ValidateCode", returnCode)
Return checkCode
End Function
Private Sub CreateCheckCodeImage(ByVal checkCode As String)
If checkCode.Trim = "" Then
Return
End If
Dim i As Integer
Dim image As System.Drawing.Bitmap = New System.Drawing.Bitmap(57, 20)
Dim g As Graphics = Graphics.FromImage(image)
Try
'生成随機生成器
Dim random As Random = New Random
'清空圖檔背景色
g.Clear(Color.White)
'畫圖檔的背景噪音線
Dim x1, x2, y1, y2 As Integer
For i = 1 To 20
x1 = random.Next(image.Width)
x2 = random.Next(image.Width)
y1 = random.Next(image.Height)
y2 = random.Next(image.Height)
g.DrawLine(New Pen(Color.Silver), x1, y1, x2, y2)
Next
Dim font As Font = New System.Drawing.Font("Arial", 12, FontStyle.Bold, GraphicsUnit.Pixel)
Dim brush As System.Drawing.Drawing2D.LinearGradientBrush = New System.Drawing.Drawing2D.LinearGradientBrush(New Rectangle(0, 0, image.Width, image.Height), Color.Blue, Color.DarkRed, 1.2F, True)
g.DrawString(checkCode, font, brush, 2, 2)
'畫圖檔的前景噪音點
Dim x, y As Integer
For i = 1 To 50
x = random.Next(image.Width)
y = random.Next(image.Height)
image.SetPixel(x, y, Color.FromArgb(random.Next()))
Next
'畫圖檔的邊框線
g.DrawRectangle(New Pen(Color.Silver), 0, 0, image.Width - 1, image.Height - 1)
Dim ms As System.IO.MemoryStream = New System.IO.MemoryStream
image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg)
Response.ClearContent()
Response.ContentType = "image/Jpeg"
Response.BinaryWrite(ms.ToArray())
Catch ex As Exception
Return
Exit Sub
End Try
End Sub
End Class
然後再調用頁面的Page_Load方法中加入(image1為Image控件)
If Not IsPostBack Then
Image1.ImageUrl = "ValidateCode.aspx"
End If
完成