zoukankan      html  css  js  c++  java
  • 随机生成中文验证码

    
    
     CreateCheckCodeImage(GenCode(4));
    
    
    
    /**//// <summary>
         /// '产生随机字符串
        /// </summary>
        /// <param name="num">随机出几个字符</param>
        /// <returns>随机出的字符串</returns>
        private string GenCode(int num)
        {
            string str = "的一是在不了有和人这中大为上个国我以要他时来用们...";
            char[] chastr = str.ToCharArray();
           
            string code = "";
            Random rd = new Random();
            int i;
            for (i = 0; i < num; i++)
            {
                //code += source[rd.Next(0, source.Length)];
                code += str.Substring(rd.Next(0, str.Length), 1);
            }
            return code;
    
        }
    
        /**//// <summary>
        /// 生成图片(增加背景噪音线、前景噪音点)
        /// </summary>
        /// <param name="checkCode">随机出字符串</param>
        private void CreateCheckCodeImage(string checkCode)
        {
            if (checkCode.Trim() == "" || checkCode == null)
                return;
            Session["Code"] = checkCode; //将字符串保存到Session中,以便需要时进行验证
            System.Drawing.Bitmap image = new System.Drawing.Bitmap((int)(checkCode.Length * 21.5), 22);
            Graphics g  = Graphics.FromImage(image);
            try
            {
                //生成随机生成器
               Random random = new Random(); 
    
                //清空图片背景色
                g.Clear(Color.White);  
    
                // 画图片的背景噪音线
                int i;
                for (i = 0; i < 25; i++)
                {
                    int x1 = random.Next(image.Width);
                    int x2 = random.Next(image.Width);
                    int y1 = random.Next(image.Height);
                    int y2 = random.Next(image.Height);
                    g.DrawLine(new Pen(Color.Silver), x1, y1, x2, y2);
                }
    
                Font font = new System.Drawing.Font("Arial", 12, (System.Drawing.FontStyle.Bold));
                System.Drawing.Drawing2D.LinearGradientBrush brush = new System.Drawing.Drawing2D.LinearGradientBrush(new Rectangle(0, 0, image.Width, image.Height), Color.Blue, Color.DarkRed, 1.2F, true);
                g.DrawString(checkCode, font, brush, 2, 2);
    
                //画图片的前景噪音点
                g.DrawRectangle(new Pen(Color.Silver), 0, 0, image.Width - 1, image.Height - 1);
                System.IO.MemoryStream ms = new System.IO.MemoryStream();
                image.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
                Response.ClearContent();
                Response.ContentType = "image/Gif";
                Response.BinaryWrite(ms.ToArray());
    
            }
            catch
            {
                g.Dispose();
                image.Dispose();
            }
    
        }
  • 相关阅读:
    CodeForces 785D Anton and School
    CodeForces 785C Anton and Fairy Tale
    CodeForces 785B Anton and Classes
    CodeForces 785A Anton and Polyhedrons
    爱奇艺全国高校算法大赛初赛C
    爱奇艺全国高校算法大赛初赛B
    爱奇艺全国高校算法大赛初赛A
    EOJ 3265 七巧板
    EOJ 3256 拼音魔法
    EOJ 3262 黑心啤酒厂
  • 原文地址:https://www.cnblogs.com/it-bobo/p/3889616.html
Copyright © 2011-2022 走看看