📄 checkcode.aspx.vb
字号:
Imports System.Drawing
Imports System.IO
Partial Class CheckCode
Inherits System.Web.UI.Page
Private Function generateVCode(ByVal CodeLength As Integer) As String
'Dim allChar 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,W,X,Y,Z"
Dim allChar As String = "0,1,2,3,4,5,6,7,8,9"
Dim allCharArray() As String = allChar.Split(",")
Dim randomCode As String = ""
Dim temp As Integer = -1
Dim rand As Random = New Random
Dim i As Integer = 0
Do While (i < CodeLength)
If (temp <> -1) Then
Dim aa As Integer = CType(DateTime.Now.Ticks Mod System.Int32.MaxValue, Integer) '根据时间生成随机数种子
rand = New Random(aa)
End If
Dim t As Integer = rand.Next(61) + 1
If t > allCharArray.Length - 1 Then t = allCharArray.Length - 1
If temp = t Then '抑制产生连续重复的验证码。
i -= 1
randomCode = Microsoft.VisualBasic.Left(randomCode, i)
End If
temp = t
randomCode = randomCode + allCharArray(t)
i += 1
Loop
Return randomCode
End Function
Private Function CreateImage(ByVal checkCode As String)
Dim iwidth As Integer = Convert.ToInt32(checkCode.Length * 11.5)
Dim image As Bitmap = New Bitmap(iwidth, 20)
Dim g As Graphics = Graphics.FromImage(image)
Dim f As Font = New Font("Arial", 10, System.Drawing.FontStyle.Bold) '设置输出的字体的及字大小可作相应调整
Dim b As Brush = New SolidBrush(Color.White)
'g.FillRectangle(New System.Drawing.SolidBrush(Color.Blue), 0, 0, image.Width, image.Height)
g.Clear(Color.Green) '填充背景色,可根据页面风格更换相应的颜色
g.DrawString(checkCode, f, b, 3, 3)
Dim rand As Random = New Random
'以下是在生成的验证码图片上增加数条横线,免于被图片辨识系统辨识出来。
'线的数量是由i决定的。
'Dim blackPen As Pen = New Pen(Color.Black, 0)
' For i As Integer = 0 To 3
' Dim y As Integer = rand.Next(image.Height)
' g.DrawLine(blackPen, 0, y, image.Width, y)
' Next
Dim ms As MemoryStream = New System.IO.MemoryStream
image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg)
Response.ClearContent()
Response.ContentType = "image/Jpeg"
Response.BinaryWrite(ms.ToArray())
g.Dispose()
image.Dispose()
End Function
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim checkCode As String = generateVCode(4)
Session("CheckCode") = checkCode.ToString
CreateImage(checkCode)
End Sub
End Class
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -