zoukankan      html  css  js  c++  java
  • 简单图形验证码

          简单的图像验证码程序

            protected void Page_Load(object sender, EventArgs e)
            {
                
    if (!this.IsPostBack)
                {
                    
    string str_validateCode = GetRandomNumString(4);
                    
    this.Session["ValidateCode"= str_validateCode;
                    createImage(str_validateCode);
                }
            }
            
        
    public static System.Drawing.Color GetRandomColor()
            {
                System.Random randomnum_first 
    = new Random((int)DateTime.Now.Ticks);
                System.Threading.Thread.Sleep(randomnum_first.Next(
    50));
                System.Random randomnum_second 
    = new Random((int)DateTime.Now.Ticks);
                
    int int_red = randomnum_first.Next(256);
                
    int int_green = randomnum_second.Next(256);
                
    int int_blue = (int_red + int_green) > 400 ? 0 : 400 - int_red - int_green;
                int_blue 
    = (int_blue > 255? 255 : int_blue;
                
    return Color.FromArgb(int_red, int_green, int_blue);
            }
            
    public static void createImage(string str_validateCode)
            {
                
    int int_imageWidth = str_validateCode.Length * 15;
                Random random 
    = new Random();
                System.Drawing.Bitmap theBitmap 
    = new Bitmap(int_imageWidth, 20);
                System.Drawing.Graphics theGraphics 
    = System.Drawing.Graphics.FromImage(theBitmap);
                theGraphics.Clear(Color.White);
                theGraphics.DrawRectangle(
    new Pen(Color.LightGray, 1), 00, int_imageWidth - 119);
                System.Drawing.Font thefont 
    = new Font("Arial"10);
                
    for (int int_index = 0; int_index < str_validateCode.Length; int_index++)
                {
                    
    string str_char = str_validateCode.Substring(int_index, 1);
                    System.Drawing.Brush newbrush 
    = new SolidBrush(GetRandomColor());
                    System.Drawing.Point thepos 
    = new Point(int_index * 13 + 1 + random.Next(3), 1 + random.Next(3));
                    theGraphics.DrawString(str_char, thefont, newbrush, thepos);
                }
                System.IO.MemoryStream ms 
    = new System.IO.MemoryStream();
                theBitmap.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
                System.Web.HttpContext.Current.Response.ClearContent();
                System.Web.HttpContext.Current.Response.ContentType 
    = "image/Gif";
                System.Web.HttpContext.Current.Response.BinaryWrite(ms.ToArray());
                theGraphics.Dispose();
                theBitmap.Dispose();
                System.Web.HttpContext.Current.Response.End();
            }

        
    public static string GetRandomNumString(int n)
            {
                
    string yzm = string.Empty;
                
    for (int i = 0; i <= 9; i++)
                {
                    yzm 
    += i.ToString() + ",";
                }
                
    for (int j = 65; j <= 90; j++)
                {
                    yzm 
    += ((char)j).ToString() + ",";

                }
                
    for (int j = 97; j <= 122; j++)
                {
                    yzm 
    += ((char)j).ToString() + ",";
                }
                yzm 
    = yzm.Substring(0, yzm.Length - 1);
                
    string[] varray = yzm.Split(',');
                
    string Vnum = string.Empty;
                
    int temp = -1;
                System.Random random 
    = new Random();
                
    for (int i = 1; i <= n; i++)
                {
                    
    if (temp != -1)
                    {
                        random 
    = new Random(i * temp * (int)DateTime.Now.Ticks);
                    }
                    
    int t = random.Next(varray.Length);
                    
    if (temp != -1 && temp == t)
                    {
                        
    return GetRandomNumString(n);
                    }
                    temp 
    = t;
                    Vnum 
    += varray[t];

                }
                
    return Vnum;
            }
  • 相关阅读:
    for xml path(''),root('')
    [小明带你玩儿Photon]4.一起来看日志
    [小明带你玩儿Photon]3.Hello World i
    [小明带你玩儿Photon]2.从零开始一个程序
    [小明带你玩儿Photon]1.Photon介绍
    杂记
    FluentNHibernate初探[1]
    [Navigation]Navigation初探[2]
    [Navigation]Navigation初探[1]
    动画系统的animator
  • 原文地址:https://www.cnblogs.com/jackhuclan/p/1296773.html
Copyright © 2011-2022 走看看