Вывод растрового изображения в C - PullRequest
1 голос
/ 18 февраля 2011

Я работаю над небольшим проектом на C, и в какой-то момент мне нужно написать картинку с содержимым массива в файл. Это должно будет работать во встроенной системе в некоторый момент, поэтому дополнительные библиотеки не являются опцией.

Код, который у меня есть, работает (в модифицированной версии) для RGB, но не работает для 8-битного оттенка серого.

Пока это сокращенная версия кода: http://pastebin.com/U1UYAPuT

Поскольку я сильно подозреваю, что заголовок каким-то образом поврежден, мой вопрос сводится к следующему: каков правильный заголовок для файла BMP для 8Bit Grayscale?

1 Ответ

2 голосов
/ 18 февраля 2011

Ваш код будет намного проще, если вы выберете BMP и вместо этого будете записывать изображения в виде файлов PGM.Формат намного более переносим и прост в работе в коде.Оба формата несжатые, поэтому скорость передачи данных будет примерно одинаковой.Единственное, что вы потеряете, - это возможность просматривать изображения в системах Windows. Это зависит от ваших требований.

Вот несколько примеров .

РЕДАКТИРОВАТЬ

По крайней мере, если вы пишете свои изображения в PGM и сломанный BMP, вы можете использовать imagemagick чтобы надежно преобразовать PGM в рабочий BMP.Затем сравните заголовки рабочих и поврежденных изображений BMP с помощью инструмента сравнения двоичных данных и исправьте записывающее устройство BMP, если требуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...