与GDI相比,GDI+要强大很多。对于Windows应用程序来说,用GDI是比较多的,也是比较熟练的,GDI+相对用的较少一点,但是现在GDI+的使用已经很普遍了。GDI+支持各种类型图片的处理,比如常见的bmp、jpg、gif、png等类型,特别是GDI+处理png图片时有很大的优势。有时我们需要将图片文件加载到内存中,然后进行UI的绘制,由于要支持多种类型的图片的载入,所以首先想到的是使用GDI+中的图片处理类Image或Bitmap。有时我们也需要将内存中的位图数据,保存成各种类型的图片文件,我们也要用到图片处理类Image或Bitmap。GDI+功能强大,但相对GDI而言,要难用很多,在使用的过程中也有很多需要注意的地方。下面结合本人在实际开发过程中遇到的问题,进行一些总结,以供参考。
1、GDI+库的加载与卸载
在程序初始化时,添加加载GDI+的代码:
ULONG_PTR m_gdiplusToken;
// 初始化GDI+
Gdiplus::GdiplusStartupInput gdiplusStartupInput;
Gdiplus::GdiplusStar