C#每天抄一点(14):生成随机验证码
15 Oct 2011昨天没写完寝室就断电了,今天发14和15节。咬牙坚持下去撒……
01 /*
02 * 由SharpDevelop创建。
03 * 用户: Lazynight
04 * 日期: 2011/10/15
05 * 时间: 20:10
06 *
07 * 要改变这种模板请点击 工具|选项|代码编写|编辑标准头文件
08 */
09 using System;
10 using System.Collections.Generic;
11 using System.Drawing;
12 using System.Windows.Forms;
13
14 namespace Lazy14_随机生成验证码
15 {
16 public partial class MainForm : Form
17 {
18 public MainForm()
19 {
20 InitializeComponent();
21 }
22 private string LazyCode()
23 {
24 int num;
25 char code;
26 string lazy_code=String.Empty;
27 Random lazy_ran=new Random();
28 for(int i=;i<4;i++)
29 {
30 num=lazy_ran.Next();
31 if(num%2==)
32 code=(char)(’0′+(char)(num%10));//随机生成0~9,即00,01,02,03……09
33 else
34 code=(char)(‘A’+(char)(num%26));//随机生成A~Z,即AA,AB,AC …… AZ
35 lazy_code+=” “+code.ToString(); //lazy_code是一个四位随机字符串
36 }
37 return lazy_code;
38 }
39 private void LazyImage(string lazy_code)////创建由随机数字生成的图片
40 {
41 if(lazy_code==null || lazy_code.Trim()==String.Empty)
42 return;
43 System.Drawing.Bitmap image=new System.Drawing.Bitmap((int)Math.Ceiling((lazy_code.Length*50.0)),50);
44 //新建一个位图,宽度为每个字节50*4个,高度为50
45 Graphics Lazy_pic =Graphics.FromImage(image);//从画布中取出图片
46 Random lazy_ran=new Random();//生成随机生成器
47 Lazy_pic.Clear(Color.White);//清空图片背景色
48 for(int i=;i<100;i++) //图片背景噪音线,通过i控制密度
49 {
50 int x1=lazy_ran.Next(image.Width);
51 int x2=lazy_ran.Next(image.Width);
52 int y1=lazy_ran.Next(image.Height);
53 int y2=lazy_ran.Next(image.Height);
54 Lazy_pic.DrawLine(new Pen(Color.Black),x1,y1,x2,y2);
55 }
56 Font font=new System.Drawing.Font(“Arial”,35,(System.Drawing.FontStyle.Bold));
57 Lazy_pic.DrawString(lazy_code,font,new SolidBrush(Color.Red),4,2);
58 for(int i=;i<7000;i++)//图片噪点,通过i控制密度
59 {
60 int x=lazy_ran.Next(image.Width);
61 int y=lazy_ran.Next(image.Height);
62 image.SetPixel(x,y,Color.FromArgb(lazy_ran.Next()));//分配为随机颜色
63 }
64 Lazy_pic.DrawRectangle(new Pen(Color.Silver),,,image.Width,image.Height);
65 this.pictureBox1.BackgroundImage=image;
66
67 }
68 void MainFormLoad(object sender, EventArgs e)
69 {
70 LazyImage(LazyCode());
71 }
72
73 void Button1Click(object sender, EventArgs e)
74 {
75 LazyImage(LazyCode());
76 }
77
78 void Button2Click(object sender, EventArgs e)
79 {
80 Application.Exit();
81 }
82 }
83 }
02 * 由SharpDevelop创建。
03 * 用户: Lazynight
04 * 日期: 2011/10/15
05 * 时间: 20:10
06 *
07 * 要改变这种模板请点击 工具|选项|代码编写|编辑标准头文件
08 */
09 using System;
10 using System.Collections.Generic;
11 using System.Drawing;
12 using System.Windows.Forms;
13
14 namespace Lazy14_随机生成验证码
15 {
16 public partial class MainForm : Form
17 {
18 public MainForm()
19 {
20 InitializeComponent();
21 }
22 private string LazyCode()
23 {
24 int num;
25 char code;
26 string lazy_code=String.Empty;
27 Random lazy_ran=new Random();
28 for(int i=;i<4;i++)
29 {
30 num=lazy_ran.Next();
31 if(num%2==)
32 code=(char)(’0′+(char)(num%10));//随机生成0~9,即00,01,02,03……09
33 else
34 code=(char)(‘A’+(char)(num%26));//随机生成A~Z,即AA,AB,AC …… AZ
35 lazy_code+=” “+code.ToString(); //lazy_code是一个四位随机字符串
36 }
37 return lazy_code;
38 }
39 private void LazyImage(string lazy_code)////创建由随机数字生成的图片
40 {
41 if(lazy_code==null || lazy_code.Trim()==String.Empty)
42 return;
43 System.Drawing.Bitmap image=new System.Drawing.Bitmap((int)Math.Ceiling((lazy_code.Length*50.0)),50);
44 //新建一个位图,宽度为每个字节50*4个,高度为50
45 Graphics Lazy_pic =Graphics.FromImage(image);//从画布中取出图片
46 Random lazy_ran=new Random();//生成随机生成器
47 Lazy_pic.Clear(Color.White);//清空图片背景色
48 for(int i=;i<100;i++) //图片背景噪音线,通过i控制密度
49 {
50 int x1=lazy_ran.Next(image.Width);
51 int x2=lazy_ran.Next(image.Width);
52 int y1=lazy_ran.Next(image.Height);
53 int y2=lazy_ran.Next(image.Height);
54 Lazy_pic.DrawLine(new Pen(Color.Black),x1,y1,x2,y2);
55 }
56 Font font=new System.Drawing.Font(“Arial”,35,(System.Drawing.FontStyle.Bold));
57 Lazy_pic.DrawString(lazy_code,font,new SolidBrush(Color.Red),4,2);
58 for(int i=;i<7000;i++)//图片噪点,通过i控制密度
59 {
60 int x=lazy_ran.Next(image.Width);
61 int y=lazy_ran.Next(image.Height);
62 image.SetPixel(x,y,Color.FromArgb(lazy_ran.Next()));//分配为随机颜色
63 }
64 Lazy_pic.DrawRectangle(new Pen(Color.Silver),,,image.Width,image.Height);
65 this.pictureBox1.BackgroundImage=image;
66
67 }
68 void MainFormLoad(object sender, EventArgs e)
69 {
70 LazyImage(LazyCode());
71 }
72
73 void Button1Click(object sender, EventArgs e)
74 {
75 LazyImage(LazyCode());
76 }
77
78 void Button2Click(object sender, EventArgs e)
79 {
80 Application.Exit();
81 }
82 }
83 }
转载请注明:于哲的博客 » C#每天抄一点(14):生成随机验证码