⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 checkcode.aspx.vb

📁 初稿
💻 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 + -