GDI+
GDI+(Graphics Device Interface)是一种绘图装置接口,可将应用和绘图硬件分隔,让我们能够写与装置无关的应用程序。属于绘图方面的API,因为应用程序不能直接控制硬件,所以当我们要进行绘图的动作时,必须通过GDI完成。
Graphics类常用的画图方法
- DrawLine():画线–两个Point
- DrawLines():画线段–Point数组
- DrawString():画文本
- DrawRectangle():画矩形
- FillRectangle():填充矩形
- DrawEllipse():画椭圆
- DrawCurve():画曲线
- DrawArc():画弧线
- DrawPie():画扇形
- DrawPolygon():画封闭多边形
- DrawBezier():画贝兹曲线
主要属性
- Bottom:矩形底部的纵坐标
- Top:矩形顶部纵坐标
- Left:矩形左部横坐标
- Right:矩形右部横坐标
- Height:矩形高度
- WIdth:矩形宽度
- Size:矩形尺寸
- IsEmpty:矩形是否为空(高度和宽度是否都为0)
- X:矩形左上角横坐标
- Y:矩形左上角纵坐标
练习:验证码
private void pictureBox1_Click(object sender, EventArgs e)
{
//随机生成五个数
string str = "";
Random r = new Random();
for (int i = 1; i <= 5; i++)
{
int num = r.Next(0, 10);
str += num;
}
//创建位图用来存验证码
Bitmap bm = new Bitmap(200, 103);
//创建对象
Graphics g = Graphics.FromImage(bm);
//五种字体、五种颜色
string[] fontName = new string[] { "方正舒体", "新宋体", "华文行楷", "黑体", "幼圆" };
Color[] color = new Color[] { Color.Red, Color.Gray, Color.Green, Color.Pink, Color.Black };
for (int i = 0; i <5; i++)
{
Point point = new Point(i * 20, 0);//每个数字的坐标
g.DrawString(str[i].ToString(), new Font(fontName[i], 20), new SolidBrush(color[i]), point);
}
//随机画线
for (int i = 0; i < 51; i++)
{
Point p_1 = new Point(r.Next(bm.Width), r.Next(bm.Height));
Point p_2 = new Point(r.Next(bm.Width), r.Next(bm.Height));
g.DrawLine(new Pen(Brushes.Gray), p_1, p_2);
}
//添加噪点
for (int i = 0; i < 1500; i++)
{
Point p_1 = new Point(r.Next(bm.Width), r.Next(bm.Height));
bm.SetPixel(p_1.X, p_1.Y, Color.Red);
}
pictureBox1.Image = bm;
}