GDI+存在的意义:将变成与具体硬件实现细节分开。
GDI+步骤:获取画布,绘制图像、处理图像
命名空间:
using System.Drawing;//提供对GDI+基本图形功能的访问 using System.Drawing.Drawing2D;//提供高级的二维和矢量图像功能 using System.Drawing.Imaging;//提供高级GDI+图像处理功能 using System.Drawing.Printing;//提供打印相关服务 using System.Drawing.Text;//提供高级GDI+排版功能 using System.Drawing.Design;//扩展设计时,用户界面逻辑和绘制的类。用于扩展,自定义
画图工具:
Graphics(画布):类封装一个GDI+绘图图面,提供将对象绘制到显示设备的方法,Graphics与特定的设备上下文关联。画图方法被包括在
Graphics类中,在画任何对象之前都需要创建一个Graphics类实例作为画图。
创建画布三种方法:
1.利用控件或窗体的Paint事件的PaintEventArgs
适用场景:为控件创建绘制代码。
示例:
//窗体的Paint事件响应方法
private void Form1_Paint(object sender, PaintEventArgs e) { Graphics g = e.Graphics; }
//直接重载控件或者窗体的OnPaint方法:
protected override void OnPaint(PaintEventArgs e) { base.OnPaint(e); Graphics g = e.Graphics; }
注意:Paint事件在重绘控件时发生。
2.调用某控件或窗体的CreateGraphics方法以获取对Graphics对象的引用,该对象表示控件或窗体的绘图图面。
适用场景:在已经存在的窗体或控件上绘图
private void button1_Click(object sender, EventArgs e) { Graphics g = this.CreateGraphics(); g.Dispose(); }
3.由从Image继承的任何对象创建Graphics对象
适用场景:需要更改已经存在的图像
private void button1_Click(object sender, EventArgs e) { Image img = Image.FromFile(@"imagespic.jpg"); Graphics g=Graphics.FromImage(img); }
Graphics类主要成员方法:
名称 | 说明 |
DrawArc | 画弧 |
DrawBezier | 画立体的贝塞尔曲线 |
DrawBeziers | 画连续立体的贝塞尔曲线 |
DrawClosedCurve | 画闭合曲线 |
DrawCurve | 画曲线 |
DrawEllipse | 画椭圆 |
DrawImage | 画图像 |
DrawLine | 画线 |
DrawPath | 通过路劲画线和曲线 |
DrawPie | 画饼图 |
DrawPolygon | 画多边形 |
DrawRectangle | 画矩形 |
DrawString | 绘制文字 |
FillEllipse | 填充椭圆 |
FillPath | 填充路劲 |
FillPie | 填充饼图 |
FillPolygon | 填充多边形 |
FillRectangle | 填充矩形 |
FillRectangles | 填充矩形组 |
FillRegion | 填充区域 |