惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
SegmentFault 最新的问题
G
Google Developers Blog
H
Help Net Security
月光博客
月光博客
阮一峰的网络日志
阮一峰的网络日志
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
P
Proofpoint News Feed
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
B
Blog RSS Feed
爱范儿
爱范儿
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 三生石上(FineUI控件)
大猫的无限游戏
大猫的无限游戏
人人都是产品经理
人人都是产品经理
GbyAI
GbyAI
D
Docker
Hugging Face - Blog
Hugging Face - Blog
I
InfoQ
博客园 - 司徒正美
Last Week in AI
Last Week in AI
Microsoft Security Blog
Microsoft Security Blog
美团技术团队
Stack Overflow Blog
Stack Overflow Blog
M
MIT News - Artificial intelligence

博客园 - 赵国亮

诚聘:网站高级程序员 诚聘:网站高级程序员 RSS2.0规范(转) 一则深有寓意的故事! 心情不爽,贴几张以前工作的照片 有效沟通,让程序员不再是兔子! 工作一年 离开公司... ASP与ASP.NET互通COOKIES的一点经验 面向对象设计需要遵循的一些基本原则 ASP.NET大型OA中常用的一些报表生成,压缩,下载等操作代码 数据结构学习笔记 在DataGrid中实现无刷新编辑列的代码(VB.NET 2003) 在DataGrid中实现鼠标指定列特殊显示的代码(VB.NET 2003) 实现向指定Url提交信息并取得返回信息 - 赵国亮 - 博客园 在不同的文本框回车触发指定按钮代码 - 赵国亮 - 博客园 页面选项卡代码 - 赵国亮 - 博客园 图片文件上传入SQL库及显示代码 - 赵国亮 - 博客园 一个比较帅的页面加载效果! - 赵国亮 - 博客园
VB.NET验证码生成代码 - 赵国亮 - 博客园
赵国亮 · 2006-07-06 · via 博客园 - 赵国亮

前台代码为:
    <asp:image id="Image2" runat="server" ImageUrl="ValidateCode.aspx">
ValidateCode.aspx文件的代码为:
        Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            list()
        End Sub
        Function list()
            
'在此处放置初始化页的用户代码
            'rndnum是一个自定义函数
            Dim vnum As String = rndnum(4)
            Session(
"vnum"= vnum
            validatecode(vnum)
        End Function
        
'生成图象验证码函数
        Sub validatecode(ByVal vnum)
            Dim img As System.drawing.Bitmap
            Dim g As Graphics
            Dim r As Random 
= New Random
            Dim gheight As Integer 
= Int(Len(vnum) * 13)
            
''gheight为图片宽度,根据字符长度自动更改图片宽度
            img 
= New Bitmap(gheight, 20)
            g 
= Graphics.FromImage(img)
            
'g.DrawString(vnum, New System.Drawing.Font("Arial", 10), New System.Drawing.SolidBrush(Color.Blue), 3, 3)
            '新增,修改
            '画图片的背景噪音线
            'For i As Integer = 0 To 25
            For i As Integer = 0 To 10
                Dim x1 As Integer
                x1 
= r.Next(img.Width)
                Dim x2 As Integer 
= r.Next(img.Width)
                Dim y1 As Integer 
= r.Next(img.Height)
                Dim y2 As Integer 
= r.Next(img.Height)
                g.DrawLine(New Pen(Color.Silver), x1, y1, x2, y2)
            Next i
            Dim font As font
            font 
= New System.Drawing.Font("Arial"12)
            Dim brush As System.Drawing.Drawing2D.LinearGradientBrush
            brush 
= New System.Drawing.Drawing2D.LinearGradientBrush(New Rectangle(00, img.Width, img.Height), Color.Blue, Color.Blue, 1.2F, True)
            g.DrawString(vnum, font, brush, 
22)

            
''画图片的前景噪音点 
            
'For ii As Integer = 0 To 100
            '    Dim x As Integer = r.Next(img.Width)
            '    Dim y As Integer = r.Next(img.Height)
            '    img.SetPixel(x, y, Color.FromArgb(r.Next()))
            'Next

            
'画图片的边框线 
            g.DrawRectangle(New Pen(Color.Silver), 00, img.Width - 1, img.Height - 1)

            
'在矩形内绘制字串(字串,字体,画笔颜色,左上x.左上y) 
            Dim ms1 As System.IO.MemoryStream
            ms1 
= New System.IO.MemoryStream
            img.Save(ms1, System.Drawing.Imaging.ImageFormat.Png)
            Response.ClearContent() 
'需要输出图象信息 要修改HTTP头 
            Response.ContentType = "image/Png"
            Response.BinaryWrite(ms1.ToArray())
            g.Dispose()
            img.Dispose()
            Response.End()

        End Sub
        
'--------------------------------------------
        '函数名称:rndnum
        '函数参数:vcodenum--设定返回随机字符串的位数
        '函数功能:产生数字和字符混合的随机字符串
        '--------------------------------------------
        Function rndnum(ByVal 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,W,X,Y,Z"
            Dim vchar As String = "2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,J,K,L,N,P,Q,R,S,T,U,X,Y,Z"
            Dim vcarray() As String 
= Split(vchar, ","'将字符串生成数组
            Dim vnum As String = ""
            Dim i As Byte
            For i 
= 1 To vcodenum
                Randomize()
                
'vnum = vnum & vcarray(Int(35 * Rnd())) '数组一般从0开始读取,所以这里为35*rnd
                vnum 
= vnum & vcarray(Int(29 * Rnd())) '数组一般从0开始读取,所以这里为35*rnd
            Next
            Return vnum
        End Function