BitBlt из цветного hDC в монохромный hDC? - PullRequest
1 голос
/ 29 сентября 2011

Я делаю BitBlt с одного 8-битного цветного DC на монохромный DC. Проблема только в пикселях со значениями 255, конвертированными в белый в монохромном режиме постоянного тока. Как указать пороговое значение, чтобы любой пиксель со значением больше 128 отображался белым цветом в монохромном режиме постоянного тока.

1 Ответ

6 голосов
/ 29 сентября 2011

Вы не можете.

Согласно странице MDSN MFC CDC :: BitBlt :

Чтобы преобразовать цвет в монохромный, BitBlt устанавливает пиксели, которые соответствуют цвету фона, на белый, а все остальные пиксели - на черный. BitBlt использует цвета переднего плана и фона контекста цветового устройства для преобразования из цветного в монохромный.

и вызовы CDC :: BitBlt :: BitBlt:

_AFXWIN_INLINE BOOL CDC::BitBlt(int x, int y, int nWidth, int nHeight, CDC* pSrcDC, int xSrc, int ySrc, DWORD dwRop)
{
    ASSERT(m_hDC != NULL);
    return ::BitBlt(m_hDC, x, y, nWidth, nHeight, pSrcDC->GetSafeHdc(), xSrc, ySrc, dwRop);
}
...