C#利用GDI绘制常见图形和文字
作者:Kimisme
本文主要介绍了C#中利用GDI来绘制图形和文字的方法,并提供的简单的示例供大家参考学习,希望能够对大家有所帮助。
废话不多说,我们先来认识一下这个GDI+,看看它到底长什么样。
GDI+:Graphics Device Interface Plus也就是图形设备接口,提供了各种丰富的图形图像处理功能;在C#.NET中,使用GDI+处理二维(2D)的图形和图像,使用DirectX处理三维(3D)的图形图像,图形图像处理用到的主要命名空间是System . Drawing:提供了对GDI+基本图形功能的访问,主要有Graphics类、Bitmap类、从Brush类继承的类、Font类、Icon类、Image类、Pen类、Color类等.
大概了解了什么是GDI+后,我们直接用几个示例,来向大家展示它能做什么吧。
1.画一条直线
复制代码 代码如下:
private void btnDrawLine_Click(object sender, EventArgs e)
{
//创建一个画图图面
Graphics g = this.CreateGraphics();
//创建一只笔
Pen pen = new Pen(Brushes.Red);
//直线的两个坐标
Point pointStart = new Point(10, 10);
Point pointEnd = new Point(50, 50);
//开始画
g.DrawLine(pen, pointStart, pointEnd);
}
{
//创建一个画图图面
Graphics g = this.CreateGraphics();
//创建一只笔
Pen pen = new Pen(Brushes.Red);
//直线的两个坐标
Point pointStart = new Point(10, 10);
Point pointEnd = new Point(50, 50);
//开始画
g.DrawLine(pen, pointStart, pointEnd);
}
2.画一个矩形
复制代码 代码如下:
private void btnDrawRectangle_Click(object sender, EventArgs e)
{
//创建一个画图图面
Graphics g = this.CreateGraphics();
//创建一只笔
Pen pen = new Pen(Brushes.DeepSkyBlue);
//确定矩形的起点、长和高
g.DrawRectangle(pen, 50, 50, 60, 30);
}
{
//创建一个画图图面
Graphics g = this.CreateGraphics();
//创建一只笔
Pen pen = new Pen(Brushes.DeepSkyBlue);
//确定矩形的起点、长和高
g.DrawRectangle(pen, 50, 50, 60, 30);
}
3.画一个字符串
复制代码 代码如下:
private void btnDrawString_Click(object sender, EventArgs e)
{
Graphics g = this.CreateGraphics();
Font font = new Font("华为宋体", 12);
//Point一样,只是值是浮点类型
PointF point = new PointF(50, 50);
g.DrawString("我是Kimisme", font, Brushes.Coral, point);
}
{
Graphics g = this.CreateGraphics();
Font font = new Font("华为宋体", 12);
//Point一样,只是值是浮点类型
PointF point = new PointF(50, 50);
g.DrawString("我是Kimisme", font, Brushes.Coral, point);
}
4.画一个扇形
复制代码 代码如下:
private void btnDrawSector_Click(object sender, EventArgs e)
{
Graphics g = this.CreateGraphics();
g.DrawPie(new Pen(Brushes.Green),
new Rectangle(new Point(100, 70),
new Size(50, 50)), 60, 90);
}
{
Graphics g = this.CreateGraphics();
g.DrawPie(new Pen(Brushes.Green),
new Rectangle(new Point(100, 70),
new Size(50, 50)), 60, 90);
}