GDI与GDI+

GDI:图形设备接口(Graphics Device Interface)

GDI主要任务是负责系统与绘图程序之间的信息交换,处理所有Windows程序的图形输出,如菜单、滚动条、图标和鼠标光标。
Windows系统绝大多数有图形界面的应用程序都离不开GDI,我们利用GDI提供的众多函数可以方便的在屏幕、打印机及其它输出设备上输出图形、文本等操作。GDI的出现使程序员无需要关心硬件设备及设备驱动,就可以将应用程序的输出转化为硬件设备上的输出,实现了程序开发者与硬件设备的隔离,大大方便了开发工作。

GDI+是GDI的增强版

GDI+从Windows XP开始引入,提供二维的矢量图形,改进旧的GDI,加强的可视化属性,例如边界,渐变和透明。通过GDI+,能够直接将BMP转成JPG或其它格式的图片,还能够生成SVG、Flash等。GDI+ 使用ARGB的值来表示颜色。GDI+的双缓冲技术可以提高绘图效率,可避免屏幕闪烁。

GDI+号称提供了硬件加速功能,可以直接访问硬件。但这似乎是夸饰的说法,GDI+无法直接使用VGA卡上的GPU来加速绘图的相关计算,因此在绘图性能上远远不及DirectX,只能做到Lock记亿体进行操作。(GDI+只是一组重新封装GDI的API,DirectX则是从COM到底层的显卡驱动程序的组合)

随GDI+推出了加强型EMF,即EMF+,可以同时支持GDI和GDI+。Microsoft .NET通过System.Drawing命名空间提供对GDI+的支持。The GDI+ 的DLL可移植到旧有的Windows版本上。

GDI+ 类似Apple的Quartz 2D子系统,以及属于开放源代码(open-source)的libart和Cairo库。

GDI接口是基于函数的,而GDI+是基于C++类的对象化的应用程序编程接口,因此使用起来比GDI要方便。

Leave a Reply

电子邮件地址不会被公开。 必填项已用*标注