随机验证码

using System; using System.Collections.Generic; using System.Drawing; using System.Drawing.Drawing2D; using System.Drawing.Imaging; using System.IO; using System.Linq;

namespace Letter.Data.Command {     public class ValidateCode     {         /// <summary>         /// 创建验证码的图片         /// </summary>         /// <param name="validateCode">验证码</param>         public byte[] CreateValidateGraphic(string validateCode)         {                         Bitmap image = new Bitmap((int)Math.Ceiling(validateCode.Length * 12.0), 22);             Graphics g = Graphics.FromImage(image);             try             {                 //生成随机生成器                 Random random = new Random();                 //清空图片背景色                 g.Clear(Color.White);                 //画图片的干扰线                 for (int 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 Font("Arial", 12, (FontStyle.Bold | FontStyle.Italic));                 LinearGradientBrush brush = new LinearGradientBrush(new Rectangle(0, 0, image.Width, image.Height),                  Color.Blue, Color.DarkRed, 1.2f, true);                 g.DrawString(validateCode, font, brush, 3, 2);                 //画图片的前景干扰点                 for (int i = 0; i < 100; i++)                 {                     int x = random.Next(image.Width);                     int y = random.Next(image.Height);                     image.SetPixel(x, y, Color.FromArgb(random.Next()));                 }                 //画图片的边框线                 g.DrawRectangle(new Pen(Color.Silver), 0, 0, image.Width - 1, image.Height - 1);                 //保存图片数据                 MemoryStream stream = new MemoryStream();                 image.Save(stream, ImageFormat.Jpeg);                 //输出图片流                 return stream.ToArray();             }             finally             {                 g.Dispose();                 image.Dispose();             }         }         /// <summary>         /// 生成数字随机码         /// </summary>         /// <param name="count">随机位数</param>         /// <returns></returns>         public string CreateValidateCode(int count)         {             Random r = new Random();             string code = string.Empty;             for (int i = 0; i < count; i++)             {                 code += r.Next(0, 9)+"";             }             return code;         }     } }

posted @ 2015-02-10 12:39  ୠZeroଙ  阅读(177)  评论(0编辑  收藏  举报