画像を事前に乗算してCDC::AlphaBlend
メソッドを使用していくつかの画像(アルファチャンネル情報付きのbmp 32ビット)を表示する従来のMCFアプリケーションがあります。Direct2Dを使用してリソースからアルファチャンネルを含む32ビットを描画します
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)
);
ありがとうございます。私はできるだけ早くそれを試してみます(今の調査よりも優先順位の高いもの)。とにかく、アルファチャンネルの問題は、ファイルからビットマップを開くときに "尊重"されていないので、ストリームを使用して開くときにはそれが表示されます。 –