本文实例为大家分享了C#生成验证码图片的具体代码,供大家参考,具体内容如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
/// <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://www.cnblogs.com/yuanzijian-ruiec/archive/2018/10/01/9734417.html