好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

C#生成验证码图片的方法

本文实例为大家分享了C#生成验证码图片的具体代码,供大家参考,具体内容如下

?

/// <summary>

     /// 生成验证码图片

     /// </summary>

     /// <returns></returns>

     public byte [] GetVerifyCode()

     {

       int codeW = 80;

       int codeH = 40;

       int fontSize = 18;

       string chkCode = string .Empty;

       //颜色列表,用于验证码、噪线、噪点

       Color[] color = { Color.Black, Color.Red, Color.Blue, Color.Green, Color.Orange, Color.Brown, Color.Brown, Color.DarkBlue };

       //字体列表,用于验证码

       string [] font = { "Times New Roman" };

       //验证码的字符集,去掉了一些容易混淆的字符

       char [] character = { '2' , '3' , '4' , '5' , '6' , '8' , '9' , 'a' , 'b' , 'd' , 'e' , 'f' , 'h' , 'k' , 'm' , 'n' , 'r' , 'x' , 'y' , 'A' , 'B' , 'C' , 'D' , 'E' , 'F' , 'G' , 'H' , 'J' , 'K' , 'L' , 'M' , 'N' , 'P' , 'R' , 'S' , 'T' , 'W' , 'X' , 'Y' };

       Random rnd = new Random();

       //生成验证码字符串

       for ( int i = 0; i < 4; i++)

       {

         chkCode += character[rnd.Next(character.Length)];

       }

 

       //创建画布

       Bitmap bmp = new Bitmap(codeW, codeH);

       Graphics g = Graphics.FromImage(bmp);

       g.Clear(Color.White);

       //画噪线

       for ( int i = 0; i < 1; i++)

       {

         int x1 = rnd.Next(codeW);

         int y1 = rnd.Next(codeH);

         int x2 = rnd.Next(codeW);

         int y2 = rnd.Next(codeH);

         Color clr = color[rnd.Next(color.Length)];

         g.DrawLine( new Pen(clr), x1, y1, x2, y2);

       }

       //画验证码字符串

       for ( int i = 0; i < chkCode.Length; i++)

       {

         string fnt = font[rnd.Next(font.Length)];

         Font ft = new Font(fnt, fontSize);

         Color clr = color[rnd.Next(color.Length)];

         g.DrawString(chkCode[i].ToString(), ft, new SolidBrush(clr), ( float )i * 18, ( float )0);

       }

       //将验证码图片写入内存流,并将其以 "image/Png" 格式输出

       MemoryStream ms = new MemoryStream();

       try

       {

         bmp.Save(ms, ImageFormat.Png);

         return ms.ToArray();

       }

       catch (Exception)

       {

         return null ;

       }

       finally

       {

         g.Dispose();

         bmp.Dispose();

       }

     }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://HdhCmsTestcnblogs测试数据/yuanzijian-ruiec/archive/2018/10/01/9734417.html

dy("nrwz");

查看更多关于C#生成验证码图片的方法的详细内容...

  阅读:47次