GDI+的名称空间
名称空间 | 说明 |
---|---|
System.Drawing | 包含与基本绘图功能有关的大多数类、结构、枚举和委托 |
System.Drawing.Drawing2D | 为大多数高级2D和矢量绘图操作提供了支持,包括消除锯齿、几何变形和图形路径 |
System.Drawing.Imaging | 包括有助于处理图像(位图、GIF文件等)的各种类 |
System.Drawing.Printing | 包含把打印机或打印预览窗口作为“输出设备”时使用的类 |
System.Drawing.Design | 包含一些预定义的对话框、属性表和其他用户界面元素,与在设计期间扩展用户界面相关 |
System.Drawing.Text | 包含对字体和字体系列执行更高级操作的类 |
Color类的颜色说明
Color的属性 | 颜色说明 |
---|---|
Color.Red | 红色 |
Color.White | 白色 |
Color.AliceBlue | 艾丽斯蓝 |
Color.AntiqueWhite | 古董白 |
一、GDI的3种基本类型绘图界面
1、Windows窗体上的控件
2、要发送给打印机的页面
3、内存中的位图图像
二、Graphics类
using System.Drawing;//添加引用
Graphics类是GDI+ 的核心,Graphics 对象表示GDI+绘图表面,它提供将对象绘制到显示设备的方法。Graphics类封装了绘制直线、曲线、图形和文字的方法
创建Graphics对象的3中方法
1、在窗体和控件的Paint事件中创建
private void groupBox1_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
}
在为控件创建绘制代码时,通常用此方法来获取对图形对象的引用
2、调用控件或窗体的CreateGraphics方法获取对Graphics对象的引用,该对象表示控件或窗体的绘画画面
private void Form1_Load(object sender, EventArgs e)
{
Graphics g = this.CreateGraphics();
}
如果在已存在的窗体或控件上绘图,应该使用此方法。
3、由从Image继承的任何对象创建Graphics对象
private void Form1_Load(object sender, EventArgs e)
{
Bitmap mbit = new Bitmap(@"C:\a.bmp");//实例化Bitmap类,获得要修改的图像
Graphics g = Graphics.FromImage(mbit);//获得图像的Graphics类在上面修改
}
此方法在需要更改已存在的图像
Graphics方法 | 说明 |
---|---|
DrawLine | 绘制直线 |
DrawRectangle | 绘制矩形 |
DrawEllipse | 绘制椭圆 |
DrawArc | 绘制圆弧 |
DrawPle | 绘制扇形 |
DrawPolygon | 绘制多边形 |
DrawString | 绘制文本 |
DrawImage | 绘制图形 |
FillEllipse | 填充椭圆内部 |
FillRectangle | 填充矩形内部 |
//获取窗体Graphics类
Graphics g = this.CreateGraphics();
//创建用于填充图形内部的颜色
SolidBrush lab = new SolidBrush(Color.Red);
//创建一个矩形
Rectangle b = new Rectangle(0, 10, 50, 50);
Pen p = new Pen(Color.Red, 2);
//创建Pen对象,第一个参数颜色,第二个参数是线宽
g.DrawLine(p, 70, 20, 70, 80);//画直线
g.DrawString("你好", new Font("华文行楷", 14), lab, 100, 100);//画字
g.DrawEllipse(p, 100, 100, 50, 50);//画圆
g.FillRectangle(lab, b);//填充矩形
g.FillEllipse(lab, 60, 10, 30, 30);//填充圆
三、Pen类
Pen类主要用于绘制线条,或者线条组合成的其他几何形状
Pen p = new Pen(Color.Beige, 2);
//创建Pen对象,第一个参数颜色,第二个参数是线宽
四、Brush类
Brush类主要用于填充几何图像。Brush类是一个抽象基类,不能进行实例化,若要创建一个画笔对象,需要从Brush派生出的类。
1、SolidBrush类
SolidBrush类可定义单色画笔,用于填充图形形状,如矩形、椭圆、扇形、多边形和封闭路径。
Graphics g = this.CreateGraphics();
SolidBrush lab = new SolidBrush( Color.Red);
Rectangle b = new Rectangle(10, 50 , 50 , 50);
g.FillRectangle(lab, b);
2、HatchBrush类
HatchBrush类提供了一种特定样式的图形,用来制作填满整个封闭区域的绘图效果。该类位于System.Drawing.Drawing2D命名空间下
for (int i = 0; i < 5; i++)
{
HatchStyle a = (HatchStyle)(3+i);
HatchBrush lab = new HatchBrush(a, Color.Red);
Rectangle b = new Rectangle(10, 50 * i, 50 * i, 50);
g.FillRectangle(lab, b);
}
3、LinerGradientBrush类
LinerGradientBrush类提供了一种渐变色彩的特效,填充图形的内部区域。该类位于System.Drawing.Drawing2D命名空间下
LinearGradientBrush lab = new LinearGradientBrush(new Point(100, 100), new Point(100, 200),Color.Red,Color.White);
//第一个参数是指定一个点,使用Point类声明了一个点
//第二个参数是指定下一个点,
//第三个参数是指定一个颜色
//第四个参数是指定一个颜色
//渐变色从第三个参数是指定的颜色变成第四个参数是指定的颜色,方向和大小和两个点有关
四、Point和PointF 结构
Point a = new Point(20,10);
a.X=20;//从原点向右移动20个单位
a.Y=10;//从原点向下移动10个单位
表示一个点,由水平坐标和垂直坐标(x,y)组成,Point 结构 表示物体的位置
Point 的X和Y的属性类型是 int , PointF 的X和Y的属性类型是 float .
五、Size和SizeF 结构
Size a = new Size(20,10):
a.Width = 20;//表示物体的宽度
a.Height =10;//表示物体的高度
Size 结构表示物体的大小,
六、Rectangle和RectangleF 结构
这两个结构表示一个矩形区域。Rectangle可以看作由一个Point和Size组成,其中Point表示矩形的左上角,Size表示其大小。
七、Region
Region表示一个包含复杂图形的区域。