Изображение BMP сгенерировано, но отображается перевернутым - PullRequest
0 голосов
/ 12 января 2011

Я сгенерировал bitmap.dll через winddk.

Добавлено вручную в качестве драйвера принтера для выбора драйвера печати в файл.

Используя это, я создаю изображение моего документа, используя команду печати из файла.

Я могу создать изображение и просмотреть его, но проблема в том, что я получаю перевернутое (зеркальное) изображение.

cScans = pOemPDEV->bmInfoHeader.biHeight;
// Flip the biHeight member so that it denotes top-down bitmap 
pOemPDEV->bmInfoHeader.biHeight = cScans * -1;

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

1 Ответ

2 голосов
/ 12 января 2011

Независимые от устройства растровые изображения задокументированы как размещенные в памяти с нижней строкой в ​​начале буфера. Это эксперимент в декартовых координатах, созданный разработчиками OS / 2, которые работали с Microsoft одновременно с разработкой Windows 3.

Существует два возможных исправления:

  1. Создайте свой буфер вверх ногами.
  2. Многие API-интерфейсы Windows, которые принимают BITMAPINFO, обрабатывают отрицательное значение biHeight как значение DIB сверху вниз.
...