5-1  GDI+绘图基本知识<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

Windows操作系统的图形输出是与设备无关的,使用GDI来处理二维图形图像,进行图形输出。Windows早期版本中使用GDI图像设备接口 (Graphics Device Interface), 是属于绘图方面的 API (Application Programming Interface)。因为应用程序不能直接控制硬件, 所以当我们要进行绘图的动作时, 必须通过 GDI 才能完成,由GDI完成实际的图形输出操作。
GDI+ 又是什么呢?GDI+ .NET Framework的绘图技术, 可将应用程序和绘图硬件分离, 让我们能够编写与设备无关的应用程序。它可以让我们不需注意特定显示设备的详细数据, 便可在屏幕或打印机上显示信息。我们可以调用 GDI+ 类别所提供的方法, 然后这些方法会适当地调用特定的设备驱动程序, 而完成绘图。
 本章学习目标:

n 了解System. Drawing 命名空间
n 掌握矢量图形和绘制对象
n 可以绘制简单的几何图形
n 掌握图像的基本处理技术

<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />5-1-1 坐标系统

窗体、控件或者打印机都包含坐标,这里是二维图形绘制,即具有XY坐标,默认情况,X坐标代表从绘图区左边边缘(Left)到某一点的距离,Y坐标代表从绘图区上边边缘(Top)到某一点的距离。
1. 坐标原点:在窗体或控件的左上角,坐标为(00);
2. 正方向:X轴正方向为水平向右,Y轴正方向为垂直向下;
3. 单位:在设置时,一般以像素为单位,像素(Pixel 是由 Picture(图像) Element(元素)这两个单词的字母所组成的,是用来计算数码影像的一种单位,把影像放大数倍,会发现这些连续色调其实是由许多色彩相近的小方点所组成,这些小方点就是构成影像的最小单位像素(Pixel)。图形的质量由像素决定,像素越大,分辨率也越大。

5-1-2 System.Drawing命名空间

System.Drawing 命名空间提供了对 GDI+ 基本图形功能的访问,其中一些子命名空间中提供了更高级的功能。该命名空间中常用类,如表5-15-2所示。

说明

Bitmap

封装 GDI+ 位图,此位图由图形图像及其属性的像素数据组成。 Bitmap 是用于处理由像素数据定义的图像的对象。

Brush

定义用于填充图形形状(如矩形、椭圆、饼形、多边形和封闭路径)的内部的对象。

Font

定义特定的文本格式,包括字体、字号和字形属性。无法继承此类。

Graphics

封装一个 GDI+ 绘图图面。无法继承此类。

Pen

定义用于绘制直线和曲线的对象。无法继承此类。

Region

指示由矩形和由路径构成的图形形状的内部。无法继承此类。

5-1

常用结构,如表5-2所示。

结构

说明

Color

表示 RGB 颜色。

Point

表示在二维平面中定义的点、整数 X Y 坐标的有序对。

Rectangle

存储一组整数,共四个,表示一个矩形的位置和大小。对于更高级的区域函数,请使用 Region 对象。

Size

存储一个有序整数对,通常为矩形的宽度和高度。

5-2

5-1-3  Graphics

Graphics 类封装了一个GDI+绘图界面,提供将对象绘制到显示设备的方法,使用GDI+创建图形图像时,需要先创建Graphics对象,即在哪里画图,该类无法继承。有三种类型的绘图界面:
1. 窗体和控件

2. 打印机

3. 内存中的位图

Graphics类不能直接实例化,创建图形对象的方法有三种:
1. 控件类的OnPaint()方法参数PaintEventArgs获取Graphics对象

2. 窗体类或控件类中的CreateGraphics()方法获得Graphics对象。

3. 从位图对象(Bitmap)产生一个Graphics对象,Graphics.FromImage(bitmap);

        常用方法及属性,如表5-3所示。
名称

说明

Dispose

释放由 Graphics 使用的所有资源。

DrawEllipse

绘制一个由边框(该边框由一对坐标、高度和宽度指定)定义的椭圆。

DrawArc

绘制弧形

DrawLine

绘制一条连接由坐标对指定的两个点的线条。

绘制由一组 Point 结构定义的多边形。

绘制由坐标对、宽度和高度指定的矩形。

绘制一个扇形,该形状由一个坐标对、宽度、高度以及两条射线所指定的椭圆定义。

DrawCurse

绘制曲线,由参数Point数组指定

填充边框所定义的椭圆的内部,该边框由一对坐标、一个宽度和一个高度指定。

FillRegion

填充 Region 的内部。

ScaleTransform

将指定的缩放操作应用于此 Graphics

TanslateTransform

平移更改坐标系统的原点

5-3 Graphics常用方法