1. GDI+的结构与组成
优质
小牛编辑
130浏览
2023-12-01
本节先介绍 GDI+的体系结构,再列出 C++封装的 GDI+ API 的具体组成。
1.1 GDI+的结构
GDI+是建立在 GDI 之上的一种高层图形子系统,基础是 GDI+平面 API,有 C++和托 管两种封装。
注意,虽然 GDI+是 GDI 的发展,但是 GDI+并非设计来替代 GDI 的,它不能独立工作, 底层还得靠 GDI 实现。
(1)GDI+的体系结构
GDI+与 GDI 一样,都具有设备无关性。而且 GDI+是建立在 GDI 之上的一种高层接口, 供 Windows API 和.NET 框架调用。与 GDI 类似,GDI+主要提供了二维矢量图形、图像处 理和文字显示版式三类功能(参见图 14-1),只是 GDI+比 GDI 的功能更强大,且编程模式发生了改变。
图 14-1 GDI+的体系结构
(2)GDI+平面 API 与封装
GDI+提供(expose)了一个平面(flat)API,它包含大约 600 个函数,被实现在 Gdiplus.dll 中,声明在 Gdiplusflat.h 内。这些函数被包装到了前面讨论过的 GDI+ API 的 54 个 C++类的 集合之中。
作为 C++封装的替代方案,微软.NET 框架提供了 GDI+的一个托管代码封装类集,包 含大约 60 个类、50 个枚举和 8 个结构。它们分属于下列命名空间:System.Drawing、 System.Drawing.Drawing2D 、 System.Drawing.Imaging 、 System.Drawing.Text 和 System. Drawing.Printing。
GDI+的平面 API 与其 C++及托管封装的关系如图 14-2 所示。
图 14-2 GDI+的封装与使用