画像を事前に乗算し、メソッドを使用して、いくつかの画像 (アルファ チャネル情報を含む bmp 32 ビット) を表示する従来の MCF アプリケーションがありますCDC::AlphaBlend
。
Direct2D を使用していくつかの新しいグラフィックスを導入したいのですが、すべての画像を png やその他の形式に移行したくありません。
ファイルから bmp 画像を描画できましたが、リソースから画像を取得する際に問題が発生し、表示された画像はアルファ チャネル情報を使用しません。
それで、誰かがこれで私を助けてくれますか?
これは、ビットマップを作成するための私のコードです:
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)
);