'本控件实现附加码功能,自动产生附加码,可以调节字体大小,验证码位数。 Imports System.Drawing Imports System.Drawing.Imaging Imports System.IO PublicClass Wuc附加码Class Wuc附加码 Inherits System.Web.UI.UserControl Web 窗体设计器生成的代码#Region " Web 窗体设计器生成的代码 " '该调用是 Web 窗体设计器所必需的。 <System.Diagnostics.DebuggerStepThrough()>PrivateSub InitializeComponent()Sub InitializeComponent() End Sub '注意: 以下占位符声明是 Web 窗体设计器所必需的。 '不要删除或移动它。 Private designerPlaceholderDeclaration As System.Object PrivateSub Page_Init()Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesMyBase.Init 'CODEGEN: 此方法调用是 Web 窗体设计器所必需的 '不要使用代码编辑器修改它。 InitializeComponent() End Sub #End Region PrivateSub Page_Load()Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesMyBase.Load 'Font_Size'字体大小 intrger 'Char_Number'验证码的位数 intrger 'BackgroundColor'背景颜色 十六进制数的字符串 Dim My_Stream As MemoryStream = Get_Images(12, 4, "#ffffff") Show_image(My_Stream) '显示内存图像 My_Stream.Close() '关闭打开的流文件 End Sub Function Get_Images()Function Get_Images(ByVal Font_Size AsInteger, ByVal Char_Number AsInteger, ByVal BackgroundColor AsString) As MemoryStream '把字符转换为图像,并且保存到内存流 Dim image_w AsInteger=Int(Font_Size *1.3) + Font_Size * Char_Number '这个数字在调用页面需要,你要自己算出明确的数值 注意注意注意注意!!!!! Dim image_h AsInteger=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(0, 0, image_w, 5* image_h)) '注意注 绘制背景 'Dim Sesson_Company As String = "" '为了进行验证比较 Dim ran AsNew System.Random Dim codeint AsInteger= ran.Next(1000, 9999) Dim code AsString=CStr(codeint) Me.Session.Add("code", code) Temp_Graphics.DrawString(code, New Font("Arial", 16), New SolidBrush(Color.Black), 0, 0) 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()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)
编辑收藏举报