首页 > 代码库 > C#GDI+编程基础(一:Graphics画布类)

C#GDI+编程基础(一:Graphics画布类)

 

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事件响应方法

 

?
1
2
3
4
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(@"images\pic.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 填充区域