GDI+学习笔记1- 概述

(一) 图形概述(Windows 窗体)

GDI+ 是构成 Microsoft Windows 操作系统子系统的应用程序编程接口 (API)。GDI+ 负责在屏幕和打印机上显示信息。 顾名思义,GDI+ 是 GDI 的后续,后者是包含在 Windows 早期版本中的图形设备接口。 GDI+ API 通过一组部署为托管代码的类公开。 这组类被称为 GDI+ 的托管类接口。 以下命名空间构成托管类接口:

System.Drawing:提供对 GDI+ 基本图形功能。
System.Drawing.Drawing2D:提供高级的二维和矢量图形功能。
System.Drawing.Imaging:提供高级 GDI+ 图像处理功能。
System.Drawing.Text:提供高级 GDI+ 的版式功能。
System.Drawing.Printing:提供与打印相关的服务。

TextRenderer:提供 GDI 文本绘制和测量功能。

使用图形设备接口(如 GDI+), 可以在屏幕或打印机上显示信息,而无需顾虑特定显示设备的详细信息。 程序员调用由 GDI+ 类提供的方法。这些方法,反过来,对特定的设备驱动程序进行适当的调用。 GDI+ 使应用程序与图形硬件隔离。正是这种隔离使程序员能够创建独立于设备的应用程序。

(二) 图形服务的三个类别

Windows 窗体中提供的图形分为下面的三大类:
1. 二维 (2-D) 矢量图形
2. 图像处理
3. 版式


1. 二维矢量图形
二维矢量图形为基元(例如,直线、曲线和图形);它们由坐标系统上的多组点指定。 例如,直线可通过它的两个端点来指定,而矩形可通过确定其左上角位置的点并给出其宽度和高度的一对数字来指定。 简单路径可由通过直线连接的点的数组来指定。 贝塞尔样条曲线是由四个控制点指定的复杂曲线。

GDI+ 提供了用于存储基元自身信息的类和结构、用于存储基元绘制方式信息的类以及用于实际绘制的类。 例如,Rectangle 结构存储矩形的位置和尺寸;Pen 类存储有关线条颜色、线条粗细和线型的信息;而 Graphics 类具有用于绘制直线、矩形、路径和其他图形的方法。 还有几种 Brush 类,它们存储有关如何使用颜色或图案来填充封闭图形和路径的信息。

您可以在元文件中记录表示图形命令序列的矢量图像。 GDI+ 提供了用于记录、显示和保存元文件的 Metafile 类。 使用 MetafileHeader 和 MetaHeader 类可以检查存储在元文件头中的数据。

2. 图像处理
某些种类的图片很难或者根本无法用矢量图形技术来显示。 例如,工具栏按钮上的图片和显示为图标的图片就难以指定为直线和曲线的集合。 拥挤的棒球运动场的高分辨率数字照片会更难以使用矢量技术来制作。 此类型的图像将以位图的形式存储,位图是由表示屏幕上各个点的颜色的数字阵列。 GDI+ 提供了用于显示、操作和保存位图的 Bitmap 类。

3. 版式
版式是指以各种字体、大小和样式显示文本。 GDI+ 提供了对这种复杂任务的广泛支持。 GDI+ 中的一个新功能是子像素抗锯齿,它可以使文本在 LCD 屏幕上呈现时显得更平滑。
另外,Windows 窗体还提供了在其 TextRenderer 类中使用 GDI 功能绘制文本的选项。

posted @ 2015-09-02 09:00  星空天宇  阅读(133)  评论(0编辑  收藏  举报