CreateDIBitmap создает черно-белое изображение - PullRequest
1 голос
/ 13 июля 2011

Для тех, кто знает, что такое CreateDIBitmap: устранение неполадок

Когда я создаю его, передавая все параметры, надеюсь, правильно, я создаю его с передачей массива данных (битовый массив). Этот массив взят из того же растрового изображения (идея состоит в том, чтобы создать новую копию; для целей тестирования). Но после создания (он возвращает правильный дескриптор), растровое изображение будет правильным, но палитра будет черно-белой. Нет цветов. Зачем? Кто знает?

1 Ответ

3 голосов
/ 13 июля 2011

Ваш первый комментарий является ключом к проблеме.Вы используете контекст устройства памяти, полученный с помощью CreateCompatibleDC () , и битовая карта по умолчанию, выбранная в DC памяти, является монохромной (1 бит на пиксель).

CreateDIBitmap () использует этот контекст устройства, чтобы определить битовую глубину создаваемого им DIB, поэтому вы получите монохромный DIB.

Вы можете использовать CreateDIBSection () для предоставления своего собственного битаглубина, но самое простое решение, вероятно, состоит в том, чтобы передать hdcScreen в CreateDIBitmap() вместо compatibleDC.

...