GDI+
GDI+ 提供了功能强大的 Matrix 类来实现矩阵的旋转,错切、平移、比例等变换操作,以便产生复杂的新图形。
创建Graphics类对象的的三种方法(窗体作为画板)
1.1 重写Paint方法
protected override void OnPaint(PaintEventArgs e) { base.OnPaint(e); GetRegionDataExample(e); } protected override void OnPaintBackground(PaintEventArgs e) { base.OnPaintBackground(e); Brush brush = new SolidBrush(Color.Blue); e.Graphics.FillRectangle(brush, e.ClipRectangle); }
1.2 Paint事件
在窗体或控件的Paint事件中创建,将其作为PaintEventArgs的一部分。在为控件创建绘制代码时,通常会使用此方法。
例如,在Paint事件中创建Graphics对象:
private void Form1_Paint(object sender, PaintEventArgs e) //窗体的Paint事件 { Graphics g = e.Graphics; //创建Graphics对象
}
1.3 CreateGraphics方法
调用窗体或控件的CreateGraphics方法可以获取对Graphics对象的引用,该对象表示控件或窗体的绘图画面。如果在已存在的窗体或控件身上绘图,应该使用此方法
例如,在窗体的Load事件中,通过CreateGraphics方法创建Graphics对象
private void Form1_Load(object sender, EventArgs e) //窗体的Load事件 { Graphics g; //声明一个Graphics对象 g = this.CreateGraphics();
g.Dispose();//手动创建,需要手动释放对象 }
1.4 Graphics.FromImage方法(图象做为画板)
由从Image继承的任何对象创建Graphics对象,调用Graphics.FromImage方法即可,该方法在需要更改已存在的图像时十分有用,例:
private void Form1_Load(object sender, EventArgs e) { Bitmap mbit = new Bitmap(@"C:\test.bmp"); Graphics g = Graphics.FromImage(mbit); }