代码之家  ›  专栏  ›  技术社区  ›  JasonGenX

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

  •  5
  • JasonGenX  · 技术社区  · 15 年前

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

    如有任何指示,将不胜感激。

    2 回复  |  直到 15 年前
        1
  •  3
  •   Chris Becke    15 年前

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

    处理图像文件的新API是 Windows Image Component . 其中一个 samples 封面使用WIC解码图像和GdiPlus执行alpha感知绘制。

        2
  •  2
  •   Kenny Kerr    15 年前

    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