GDI是Graphics Device Interface的缩写,含义是图形设备接口,它的主要任务是负责系统与绘图程序之间的信息交换,处理所有Windows程序的图形输出。GDI+是在GDI基础上提供的一层更高级的图像绘制抽象接口,语义更明确调用更方便。它们都支持向图片对象或者窗口上输出图形。在窗口上绘图时它们都使用窗口提供的HDC句柄实现绘制;在图片对象绘制图像时,GDI+支持直接传入图片对象实现对图片的绘制,GDI需要先创建一个与图片兼容的HDC,再将HDC与被绘制图片进行绑定,然后才能在图片上进行绘制。
它们在用法上相似,区别主要有以下几个方面:
- GDI不支持透明图片处理(AlphaBlend只能混合颜色,透明得由第三方库支持)
- GDI不支持反锯齿(对于图片绘制线条、图像或拉伸等处理时,可能出现白色锯齿形状图像,影响美观)
- GDI对于图片颜色处理具有很大优势。GDI+慢的一比
- GDI是以C的接口形式提供接口,GDI+是以C艹和托管类的方式提供接口
- 使用GDI+的程序在初始化后、程序关闭前需调用GDI+初始化、释放的代码
- 从层次结构上来说,GDI+更好用