CreateDIBitmap создает черно-белое изображение

Для тех, кто знает, что такое CreateDIBitmap

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

1 ответ

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

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

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

Другие вопросы по тегам