C#验证码

  1. /// <SUMMARY>      
  2.         /// 生成验证码图片      
  3.         /// </SUMMARY>      
  4.         public void CreateCheckCodeImage()      
  5.         {    
  6.             #region      
  7.             string checkCode = GenerateCheckCode();      
  8.             if (checkCode == null || checkCode.Trim() == String.Empty)      
  9.                 return;      
  10.      
  11.             System.Drawing.Bitmap image = new System.Drawing.Bitmap((int)Math.Ceiling((checkCode.Length * 12.5)), 22);      
  12.             Graphics g = Graphics.FromImage(image);      
  13.      
  14.             try     
  15.             {      
  16.                 //生成随机生成器      
  17.                 Random random = new Random();      
  18.      
  19.                 //清空图片背景色      
  20.                 g.Clear(Color.White);      
  21.      
  22.                 //画图片的背景噪音线      
  23.                 for (int i = 0; i < 25; i++)      
  24.                 {      
  25.                     int x1 = random.Next(image.Width);      
  26.                     int x2 = random.Next(image.Width);      
  27.                     int y1 = random.Next(image.Height);      
  28.                     int y2 = random.Next(image.Height);      
  29.      
  30.                     g.DrawLine(new Pen(Color.Silver), x1, y1, x2, y2);      
  31.                 }      
  32.      
  33.                 Font font = new System.Drawing.Font("Arial", 12, (System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic));      
  34.                 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);      
  35.                 g.DrawString(checkCode, font, brush, 2, 2);      
  36.      
  37.                 //画图片的前景噪音点      
  38.                 for (int i = 0; i < 100; i++)      
  39.                 {      
  40.                     int x = random.Next(image.Width);      
  41.                     int y = random.Next(image.Height);      
  42.      
  43.                     image.SetPixel(x, y, Color.FromArgb(random.Next()));      
  44.                 }      
  45.      
  46.                 //画图片的边框线      
  47.                 g.DrawRectangle(new Pen(Color.Silver), 0, 0, image.Width - 1, image.Height - 1);      
  48.      
  49.                 System.IO.MemoryStream ms = new System.IO.MemoryStream();      
  50.                 image.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);      
  51.                 HttpContext.Current.Response.ClearContent();      
  52.                 HttpContext.Current.Response.ContentType = "image/Gif";      
  53.                 HttpContext.Current.Response.BinaryWrite(ms.ToArray());      
  54.             }      
  55.             finally     
  56.             {      
  57.                 g.Dispose();      
  58.                 image.Dispose();      
  59.             }    
  60.             #endregion      
  61.         }  
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值