Невозможно создать монохромное растровое изображение из HBITMAP, полученного GDI + Bitmap :: GetHBITMAP - PullRequest
0 голосов
/ 01 января 2011

Мне не удается создать монохромную маску для цветного изображения 24BPP с помощью SetBkColor ()> BitBlt [SRCCOPY]. Маска оказывается полностью черной. Все это работает, только если я использую LoadImage () вместо этого, чтобы получить HBITMAP.

Bitmap img(L"Ball.bmp");
HBITMAP hBM;
img.GetHBITMAP(Color::White, &hBM);
//hBM = LoadBitmap(GetModuleHandle(NULL), MAKEINTRESOURCE(IDB_BALL));
.
.
SelectObject(hDCSrc, hBM);
SetBkColor(RGB(0xFF, 0xFF, oxFF));
BitBlt(hDCMem, 0, 0, img.GetWidth(), img.GetHeight(), hDCSrc, 0, 0, SRCCOPY);

//hDCMem is copletely black; but OK when using LoadImage() instead

Другие люди с такой же проблемой предложили использовать Graphics :: GetHDC и выполнить необходимые действия с этим DC в качестве обходного пути. Но почему это не работает так, как должно.

Даже этот обходной путь работы. Пожалуйста, помогите: (

1 Ответ

0 голосов
...