BitBlt从彩色hDC到单色hDC?

时间:2011-09-29 12:36:22

标签: winapi visual-c++ gdi

我正在从一个8位彩色DC到单色DC进行BitBlt。问题是在单色DC中只有值为255的像素被转换为白色。如何指定阈值,以便任何值大于128的像素在单色DC中显示为白色。

1 个答案:

答案 0 :(得分:6)

你不能。

根据MDSN page of 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);
}