Невозможно создать монохромное растровое изображение из HBITMAP, полученного с помощью GDI+ Bitmap::GetHBITMAPC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Невозможно создать монохромное растровое изображение из HBITMAP, полученного с помощью GDI+ Bitmap::GetHBITMAP

Сообщение Anonymous »

Мне не удается создать монохромную маску для цветного изображения 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 в качестве обходного пути. Но почему это не работает так, как должно.

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

Подробнее здесь: https://stackoverflow.com/questions/457 ... gethbitmap
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»