У меня есть старое приложение MCF, которое отображает некоторые изображения (bmp 32-bit с информацией альфа-канала), предварительно умножая изображения и используя метод 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)
);