• 生成随机验证图片ASP.NET中常用代码之二


    生成随机验证图片(转载)
    使用方法:
    1///调用函数将验证码生成图片
    2            this.CreateCheckCodeImage(GenerateCheckCode());

    1/// <summary>
     2        /// 产生五位的随机字符串
     3        /// </summary>
     4        /// <returns></returns>

     5        private string GenerateCheckCode()
     6        {  
     7            int number;
     8            char code;
     9            string checkCode = String.Empty;
    10
    11            System.Random random = new Random();
    12
    13            for (int i = 0; i < 5; i++)
    14            {
    15                number = random.Next();
    16
    17                if (number % 2 == 0)
    18                    code = (char)('0' + (char)(number % 10));
    19                else
    20                    code = (char)('A' + (char)(number % 26));
    21
    22                checkCode += code.ToString();
    23            }

    24
    25            ///用于客户端校验码比较
    26            Session["CheckCode"= checkCode;
    27
    28            return checkCode;
    29        }

    30        
    31        /// <summary>
    32        /// 将验证码生成图片显示
    33        /// </summary>
    34        /// <param name="checkCode"></param>

    35        private void CreateCheckCodeImage(string checkCode)
    36        {  
    37            if (checkCode == null || checkCode.Trim() == String.Empty)
    38                return;
    39
    40            System.Drawing.Bitmap image = new System.Drawing.Bitmap((int)Math.Ceiling((checkCode.Length * 12.5)), 22);
    41            Graphics g = Graphics.FromImage(image);
    42
    43            try
    44            {
    45                ///生成随机生成器 
    46                Random random = new Random();
    47
    48                ///清空图片背景色 
    49                g.Clear(Color.White);
    50
    51                ///画图片的背景噪音线 
    52                for (int i = 0; i < 25; i++)
    53                {
    54                    int x1 = random.Next(image.Width);
    55                    int x2 = random.Next(image.Width);
    56                    int y1 = random.Next(image.Height);
    57                    int y2 = random.Next(image.Height);
    58
    59                    g.DrawLine(new Pen(Color.Silver), x1, y1, x2, y2);
    60                }

    61
    62                Font font = new System.Drawing.Font("Arial"12, (System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic));
    63                System.Drawing.Drawing2D.LinearGradientBrush brush = new System.Drawing.Drawing2D.LinearGradientBrush(new Rectangle(00, image.Width, image.Height), Color.Blue, Color.DarkRed, 1.2ftrue);
    64                g.DrawString(checkCode, font, brush, 22);
    65
    66                ///画图片的前景噪音点 
    67                for (int i = 0; i < 100; i++)
    68                {
    69                    int x = random.Next(image.Width);
    70                    int y = random.Next(image.Height);
    71
    72                    image.SetPixel(x, y, Color.FromArgb(random.Next()));
    73                }

    74
    75                ///画图片的边框线 
    76                g.DrawRectangle(new Pen(Color.Silver), 00, image.Width - 1, image.Height - 1);
    77
    78                System.IO.MemoryStream ms = new System.IO.MemoryStream();
    79                image.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
    80                Response.ClearContent();
    81                Response.ContentType = "image/Gif";
    82                Response.BinaryWrite(ms.ToArray());
    83            }

    84            finally
    85            {
    86                g.Dispose();
    87                image.Dispose();
    88            }

    89        }


    转自http://Teerylee.cnblogs.com/

  • 相关阅读:
    Spring基础知识
    Hibernate基础知识
    Struts2基础知识
    在eclipse里头用checkstyle检查项目出现 File contains tab characters (this is the first instance)原因
    java后台获取cookie里面值得方法
    ckplayer 中的style.swf 中的 style.xml 中的修改方法
    java hql case when 的用法
    Windows下Mongodb安装及配置
    Mongodb中经常出现的错误(汇总)child process failed, exited with error number
    Mac 安装mongodb
  • 原文地址:https://www.cnblogs.com/sutengcn/p/291525.html
Copyright © 2020-2023  润新知