如何读取png图像并转移到ID2D1Bitmap?

时间:2014-07-04 10:11:19

标签: c++ animation png direct2d

我有一个C ++项目,它使用Visual Studio 2010下的 Windows动画管理器和Direct2D 来实现图像闪烁动画。 但是当我加载png图像时,透明无法正确显示。

我使用 IWICImagingFactory IWICBitmap 来加载png图像,然后从WIC位图创建D2D位图。 D2D1_PIXEL_FORMAT的 alphaMode设置为 D2D1_ALPHA_MODE_PREMULTIPLIED ,格式设置为 DXGI_FORMAT_B8G8R8A8_UNORM 。它似乎只是不透明和透明,没有半透明。我尝试将D2D1_PIXEL_FORMAT的alphaMode更改为 D2D1_ALPHA_MODE_STRAIGHT ,但它不起作用。

我也遵循MSDN(http://msdn.microsoft.com/en-us/library/windows/desktop/ee719658(v=vs.85).aspx)中的示例代码,但没有显示。有人可以帮我解决如何加载png图像并转移到具有正确alpha值的ID2D1Bitmap吗?谢谢!

1 个答案:

答案 0 :(得分:1)

我已经从 \ Microsoft SDKs \ Windows \ v7.1 \ Samples \ multimedia \ wic \ wicviewerd2d 下的示例代码中解决了我的问题。初始化IWICFormatConverter对象时,重要的关键字是 GUID_WICPixelFormat32bppPBGRA