Вычисление значения biCompression BITMAPINFOHEADER для монохромного BMP - PullRequest
0 голосов
/ 02 марта 2009

Надеюсь, у кого-то есть ответ, и он не слишком сложный. Я работаю над C ++ dll (без C # или .Net, полностью статическая DLL).

Во всяком случае, это беспокоит встроенные монохромные растровые изображения. У меня все это работает, за исключением резолюции. Я получаю Контекст устройства, Получаю Совместимый Контекст Устройства, строю точечный рисунок, рисую то, что мне нужно (как черно-белое), и могу сохранить. Все это прекрасно работает. Однако я не могу понять, как установить разрешение растрового изображения.

Выполняя некоторое тестирование из другой утилиты в C #, я могу создать растровое изображение и установить разрешение. При этом я запустил подпрограмму для генерации того же содержимого файла с параметром от 1 до 300 для разрешения. Каждое изображение получалось в точности одинаковым, КРОМЕ значений в свойстве DWORD "biCompression". По умолчанию используется разрешение экрана 96x96, но для принтеров 300x300 и даже некоторых с разрешением 203x203 его необходимо изменить.

Ответы [ 3 ]

1 голос
/ 02 марта 2009

Вы уверены, что не хотите устанавливать biXPelsPerMeter и biYPelsPerMeter? Эти два поля показывают количество пикселей на метр в X и Y, которое вы можете использовать для установки DPI. biCompression имеет дело только с типом сжатия растрового изображения, например, RLE, JPG, PNG и т. Д.

0 голосов
/ 03 марта 2009

Спасибо за ввод, но я посмотрю в biXPelsPerMeter и biYPels ... тоже. Я дважды проверю формат и то, что было установлено ... если это так, вы, возможно, обратили на это внимание вторым взглядом (умами) на мою проблему.

Спасибо

0 голосов
/ 02 марта 2009

Вы абсолютно уверены? Описание поведения, которое вы наблюдаете, звучит подозрительно для меня, и я подозреваю, что код, который вы используете для написания своих растровых изображений, или код, который читает их обратно.

...