Pure C ++ / Win32应用程序中的透明PNG文件

时间:2010-11-15 17:57:06

标签: winapi

我有一个纯C ++ / Win32 VS2005桌面应用程序。在我的WM_PAINT响应期间,当我绘制窗口时,我希望能够将透明的PNG图像投影到我的窗口上。

任何指针都会受到赞赏。

2 个答案:

答案 0 :(得分:3)

GdiPlus至少从Windows XP开始就是Windows的一部分,可以轻松解码JPEG,PNG和GIF文件。

用于处理图像文件的新API是Windows Image Component。其中一个samples涵盖了使用WIC解码图像和GdiPlus来执行alpha感知绘画。

答案 1 :(得分:2)

Windows映像组件(WIC)是本机代码的主要API,可提供对各种图像格式进行编码和解码的功能。您可以使用它将PNG图像加载到您的应用程序中。

http://msdn.microsoft.com/library/ee719902

或者你可以使用GDI +但这是相当古老的技术并且几乎不能正常工作。您也可以使用GDI +渲染图像,但我建议使用Direct2D。

Direct2D能够通过窗口或位图设备上下文直接在GPU或软件中渲染WIC位图。

这是关于Direct2D的介绍性文章:

http://msdn.microsoft.com/en-ca/magazine/dd861344.aspx

这个描述了如何将Direct2D与WIC一起使用:

http://msdn.microsoft.com/en-us/magazine/ee819134.aspx