При рисовании растрового изображения после преобразования HBITMAP с использованием D2D отображается черное пиксельное изображение.
Исходное изображение - это изображение с высоким разрешением, которое я хочу напечатать, используя Windows D2d
HBITMAP bitmap; // HBITMAP Image
IWICBitmap* pwicbitmap;
IWICFormatConverter* pConverter;
ID2D1Factory* d2dfactory;
ID2D1Bitmap* ppD2DBitmap;
auto errmsg = m_WikImagingFactory->CreateBitmapFromHBITMAP(
bitmap, NULL, WICBitmapUseAlpha, &pwicbitmap);
FAIL_FAST_IF_FAILED(errmsg);
errmsg = m_WikImagingFactory->CreateFormatConverter(&pConverter);
FAIL_FAST_IF_FAILED(errmsg);
D2D1_BITMAP_PROPERTIES d2dbp;
D2D1_PIXEL_FORMAT d2dpf;
FLOAT dpiX;
FLOAT dpiY;
d2dpf.format = DXGI_FORMAT_B8G8R8A8_UNORM;
d2dpf.alphaMode = D2D1_ALPHA_MODE_PREMULTIPLIED;
m_spD2DDeviceContext->GetFactory(&d2dfactory);
d2dfactory->GetDesktopDpi(&dpiX, &dpiY);
d2dbp.pixelFormat = d2dpf;
d2dbp.dpiX = 600;
d2dbp.dpiY = 600;
pConverter->Initialize(pwicbitmap, GUID_WICPixelFormat32bppPBGRA,
WICBitmapDitherTypeNone, NULL, 0.0f,
WICBitmapPaletteTypeMedianCut);
// errmsg = WICConvertBitmapSource(GUID_WICPixelFormat32bppPBGRA, pwicbitmap,
// &pconvertedwicbitmap);
// FAIL_FAST_IF_FAILED(errmsg);
errmsg = m_spD2DDeviceContext->CreateBitmapFromWicBitmap(
pConverter, 0, &ppD2DBitmap);
FAIL_FAST_IF_FAILED(errmsg);
m_spD2DDeviceContext->DrawBitmap(
ppD2DBitmap, D2D1::RectF(dest_left, dest_top, dest_left + dest_width, dest_top + dest_height));