qiulh

博客园 首页 新随笔 联系 订阅 管理
'本控件实现附加码功能,自动产生附加码,可以调节字体大小,验证码位数。
Imports System.Drawing
Imports System.Drawing.Imaging
Imports System.IO
Public Class Wuc附加码
    
Inherits System.Web.UI.UserControl

Web 窗体设计器生成的代码
    
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        
'Font_Size'字体大小 intrger
        'Char_Number'验证码的位数 intrger
        'BackgroundColor'背景颜色 十六进制数的字符串
        Dim My_Stream As MemoryStream = Get_Images(124"#ffffff")
        Show_image(My_Stream) 
'显示内存图像
        My_Stream.Close() '关闭打开的流文件

    
End Sub

    
Function Get_Images(ByVal Font_Size As IntegerByVal Char_Number As IntegerByVal BackgroundColor As StringAs MemoryStream '把字符转换为图像,并且保存到内存流
        Dim image_w As Integer = Int(Font_Size * 1.3+ Font_Size * Char_Number '这个数字在调用页面需要,你要自己算出明确的数值 注意注意注意注意!!!!!
        Dim image_h As Integer = Int(2.5 * Font_Size) '这个数字在调用页面需要,你要自己算出明确的数值    注意注意注意注意!!!!!

        
Dim Temp_Bitmap As Bitmap '封装GDI+位图 
        Dim Temp_Graphics As Graphics '封装GDI+绘图面
        Dim Color_Back As Color = ColorTranslator.FromHtml(BackgroundColor) '背景颜色 

        Temp_Bitmap 
= New Bitmap(image_w, image_h, PixelFormat.Format32bppRgb)  '注意注  确定背景大小

        Temp_Graphics 
= Graphics.FromImage(Temp_Bitmap)
        Temp_Graphics.FillRectangle(
New SolidBrush(Color_Back), New Rectangle(00, image_w, 5 * image_h)) '注意注   绘制背景 

        
'Dim Sesson_Company As String = "" '为了进行验证比较
        Dim ran As New System.Random
        
Dim codeint As Integer = ran.Next(10009999)
        
Dim code As String = CStr(codeint)

        
Me.Session.Add("code", code)
        Temp_Graphics.DrawString(code, 
New Font("Arial"16), New SolidBrush(Color.Black), 00)
Dim Temp_Stream As MemoryStream = New MemoryStream
        Temp_Bitmap.Save(Temp_Stream, ImageFormat.Jpeg)
        Temp_Graphics.Dispose() 
'释放资源
        Temp_Bitmap.Dispose() '释放资源
        Temp_Stream.Close() '关闭打开的流文件
        Return Temp_Stream '返回流
    End Function

 
Function Show_image(ByVal Show_Stream As MemoryStream) '显示内存图像
        Response.ClearContent()
        Response.ContentType 
= "Image/Jpeg"
        Response.BinaryWrite(Show_Stream.ToArray())
        Response.End()
    
End Function

End Class


posted on 2006-05-12 20:50  不倒翁  阅读(320)  评论(1编辑  收藏  举报