Неправильные цвета при предварительном просмотре
У меня есть этот код в моем методе OnPrint (я не могу использовать мой OnDraw, потому что я использую в нем Direcr2D)
void CWDCView::OnPrint(CDC* pDC, CPrintInfo* pInfo)
{
UINT width = 0, height = 0;
pDoc->m_pWICBitmap->GetSize(&width, &height);
UINT cbStride = (width*32+7)/8;
UINT cbBufferSize = width * height * 4;
BYTE *buffer = new BYTE[cbBufferSize];
SecureZeroMemory(buffer, cbBufferSize);
HRESULT hr = S_OK;
hr = pDoc->m_pWICBitmap->CopyPixels(NULL, cbStride, cbBufferSize, buffer);
HBITMAP bitmap = CreateBitmap(width, height, 1, 32, buffer);
delete [] buffer;
CBitmap *pBitmap=CBitmap::FromHandle(bitmap);
BITMAP bmInfo;
pBitmap->GetBitmap(&bmInfo);
CDC MemDC;
MemDC.CreateCompatibleDC(pDC);
MemDC.SelectObject(pBitmap);
pDC->BitBlt(0,0,bmInfo.bmWidth,bmInfo.bmHeight,&MemDC,0,0,SRCCOPY);
}
У меня две проблемы:
Неправильные цвета при предварительном просмотре (см. Прикрепленное изображение, правильное изображение - то, что я вижу в предварительном просмотре). Тем не менее, когда я печатаю его в XPS Document Writer, цвета правильные.
Когда я печатаю растровое изображение на реальном принтере, я просто получаю пустую страницу.
К сожалению, я не нашел хорошей документации, связанной с печатью растровых изображений.
PS Нет другого кода в OnFilePrintPreview, OnPreparePrinting, OnBeginPrinting, OnEndPrinting