手机
当前位置:查字典教程网 >编程开发 >C#教程 >深入c#绘制验证码的详解
深入c#绘制验证码的详解
摘要:1.使用一个PictureBox空间,使用一个按钮,以刷新验证码。2.首先定义CheckCode()方法,以生成4为英文及数字组成的字符串序...

1.使用一个PictureBox空间,使用一个按钮,以刷新验证码。

2.首先定义CheckCode()方法,以生成4为英文及数字组成的字符串序列:

复制代码 代码如下:

private string CheckCode()

{

int number;

char code;

string checkCode = String.Empty;

Random random = new Random();

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

{

number=random.Next();

if(number%2==0)

code=(char)('0'+(char)(number%10));

else

code=(char)('A'+(char)(number%26));

checkCode += " " + code.ToString();

}

return checkCode;

}

3.自定义CodeImage()方法,将CheckCode()方法生成的序列转化为图片并显示:

复制代码 代码如下:

private void CodeImage(string checkCode)

{

if (checkCode == null || checkCode.Trim() == String.Empty)

{

return;

}

System.Drawing.Bitmap image=new System.Drawing.Bitmap((int)Math.Ceiling((checkCode.Length*50.0)),50);

Graphics g=Graphics.FromImage(image);

try

{

Random random = new Random();

g.Clear(Color.White);

for (int i = 0; i < 3; 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.Black), x1, y1, x2, y2);

}

Font font = new System.Drawing.Font("Arial", 30, (System.Drawing.FontStyle.Bold));

g.DrawString(checkCode, font, new SolidBrush(Color.Red), 2, 2);

for (int i = 0; i < 200; 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);

this.pictureBox1.Width = image.Width;

this.pictureBox1.Height = image.Height;

this.pictureBox1.BackgroundImage = image;

}

catch

{

}

}

4.

复制代码 代码如下:

private void Form1_Load(object sender, EventArgs e)

{

CodeImage(CheckCode());

}

private void button1_Click(object sender, EventArgs e)

{

CodeImage(CheckCode());

}

【深入c#绘制验证码的详解】相关文章:

C#词法分析器之构造NFA详解

深入分析C#键盘勾子(Hook)拦截器,屏蔽键盘活动的详解

C# 泛型深入理解介绍

深入C#中get与set的详解

基于c# 类、接口、结构的联系与区别详解

c#数组详解

深入分析C#中处理和键盘相关事件的详解

c# 引用类型与值类型的区别详解

深入C#中使用SqlDbType.Xml类型参数的使用详解

深入C#判断操作系统类型的总结详解

精品推荐
分类导航