您的位置:首页 > 运维架构 > 网站架构

网站性能——注册登录验证码

2009-06-29 09:05 225 查看
 /// <summary>
        /// 生成验证码图片
        /// </summary>
        /// <param name="checkCode"></param>
        /// <param name="response"></param>
        public static void CreateCheckCodeImage(string checkCode, System.Web.HttpResponse response)
        {
            int width = 80;//验证码图片宽度
            int height = 22;//验证码图片高度
            Font font = new Font("Arial", 12, FontStyle.Bold);//验证码字体

            SolidBrush brush = new SolidBrush(Color.Black);//用于写验证码的画笔

            Pen crosswise = new Pen(Color.Green, 0);//画横向干扰线的钢笔
            Pen vertical = new Pen(Color.FromArgb(255, 100, 100, 100), 0);//画纵向干扰线的钢笔

            Bitmap image = new Bitmap(width, height);//生成图像

            Graphics g = Graphics.FromImage(image);//生成一个绘画面板(画布)

            g.Clear(ColorTranslator.FromHtml("#f0f0f0"));//用指定颜色填充画布

            RectangleF rect = new RectangleF(5, 2, width, height);//定义文字的绘制矩形

            Random rand = new Random((int)DateTime.Now.Ticks);//生成干扰线的随机对象

            for (int i = 0; i < 2; i++)
            {
                Point start = new Point(0, rand.Next(height));

                Point end = new Point(width, rand.Next(height));

                g.DrawLine(crosswise, start, end);
            }

            for (int i = 0; i < 4; i++)
            {
                Point start = new Point(rand.Next(width), 0);

                Point end = new Point(rand.Next(width), height);

                g.DrawLine(vertical, start, end);
            }

            g.DrawString(checkCode,font,brush,rect);//将验证码写到画布上
            System.IO.MemoryStream ms = new System.IO.MemoryStream();
            try
            {
                image.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
                response.ClearContent();
                response.ContentType = "image/Gif";
                response.BinaryWrite(ms.ToArray());
            }
            finally
            {
                ms.Flush();
                ms.Close();
                ms.Dispose();
                g.Dispose();
                image.Dispose();
            }
        }

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  random image string
相关文章推荐