【发布时间】:2012-03-28 20:03:26
【问题描述】:
我有一个旧版 MCF 应用程序,它通过预乘图像并使用 CDC::AlphaBlend 方法来显示一些图像(bmp 32 位,带有 alpha 通道信息)。
我想介绍一些使用 Direct2D 的新图形,但我不想将所有图像迁移到 png 或其他格式。
我设法从一个文件中绘制了一个 bmp 图像,但我在从资源中获取图像时遇到了问题,而且显示的图像不使用 alpha 通道信息。
那么有人可以帮我解决这个问题吗?
这是我创建位图的代码:
hr = pIWICFactory->CreateDecoderFromFilename( L"D:\\image.bmp",
NULL,
GENERIC_READ,
WICDecodeMetadataCacheOnDemand,
&pDecoder);
if (SUCCEEDED(hr))
{
// Create the initial frame.
hr = pDecoder->GetFrame(0, &pSource);
}
if (SUCCEEDED(hr))
{
//create a Direct2D bitmap from the WIC bitmap.
hr = pRenderTarget->CreateBitmapFromWicBitmap(
pSource,
NULL,
ppBitmap
);
}
这是绘制位图的代码:
m_pRenderTarget->DrawBitmap(
m_pBitmap,
D2D1::RectF(0.0f, 0.0f, size.width, size.height)
);
【问题讨论】:
标签: visual-c++ mfc alphablending direct2d wic