2011-01-12 4 views
0

Я сгенерировал bitmap.dll через winddk.BMP изображение сгенерировано Но отображается инвертированное

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

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

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

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

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

ответ

2

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

Есть два возможных исправлений:

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

Да, я сделал это, но передавая отрицательное значение biHeight, заголовок изображения изменяется и поэтому изображение не загружается в моем приложении. – user549757

+0

вам нужно объяснить, как измененный заголовок изображения может препятствовать загрузке. Вы пытаетесь сохранить его на диск инвертированным? Я не думаю, что это действительно так. Если вы сохраняете BMP на диск, он ДОЛЖЕН быть снизу вверх. –

Смежные вопросы