我有一个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吗?谢谢!
答案 0 :(得分:1)
我已经从 \ Microsoft SDKs \ Windows \ v7.1 \ Samples \ multimedia \ wic \ wicviewerd2d 下的示例代码中解决了我的问题。初始化IWICFormatConverter对象时,重要的关键字是 GUID_WICPixelFormat32bppPBGRA 。