本文主要演示GDI绘制数字验证码。
using System;
using System.Drawing;
using System.Windows.Forms;
namespace GDIwork
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void pictureBox1_Click(object sender, EventArgs e)
{
//创建图片对象
Bitmap bmp = new Bitmap(120, 40);
//创建GDI对象
Graphics graphics = Graphics.FromImage(bmp);
//创建随机数对象
Random random = new Random();
string[] fonts = { "微软雅黑", "宋体", "黑体", "隶书", "仿宋" };
Color[] colors = { Color.DarkOrange, Color.Blue, Color.Red, Color.Green, Color.Black };
for (int i = 0; i < 5; i++)
{
int num = random.Next(0, 10);
Point point = new Point(i * 20, 0);
graphics.DrawString(num.ToString(), new Font(fonts[random.Next(0, 5)], 20, FontStyle.Bold), new SolidBrush(colors[random.Next(0, 5)]), point);
}
//绘制背景线
for (int i = 0; i < 20; i++)
{
Pen pen = new Pen(Brushes.Green);
Point p1 = new Point(random.Next(0, bmp.Width), random.Next(0, bmp.Height));
Point p2 = new Point(random.Next(0, bmp.Width), random.Next(0, bmp.Height));
graphics.DrawLine(pen, p1, p2);
}
//绘制背景点
for (int i = 0; i < 500; i++)
{
bmp.SetPixel(random.Next(0, bmp.Width), random.Next(0, bmp.Height), Color.Black);
}
//将图片放到pictureBox中
pictureBox1.Image = bmp;
}
}
}
执行结果: