创建一个名为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
完成