Вопрос

Кто-нибудь знает хороший образец C, который загружает растровые изображения и обрабатывает все случаи:rle, черно-белые растровые изображения и так далее?

Код должен быть кроссплатформенным.

Спасибо.

Это было полезно?

Решение

Я бы предложил использовать библиотеку, подобную SDL - изображение

Другие советы

Если вы ищете минимальный загрузчик bmp, эта ссылка предоставит вам все, что вам нужно знать о формате BMP, структурах данных и примерах кода без какой-либо зависимости от библиотеки для загрузки:

http://paulbourke.net/dataformats/bmp/.

Он также содержит код для просмотра загруженного BMP в открытой текстуре gl, так что практически все, что вам нужно...

Крис Бэкхаус создал функциональный маленький загрузчик BMP (с прицелом на использование их в качестве текстур OpenGL).Это C ++, а не C, и он признает, что это не кроссплатформенный.Тем не менее, он небольшой и понятный, поэтому я подумал, что добавлю ссылку сюда:

http://users.ox.ac.uk /~orie1330/bmploader.html

Для этого вам нужна какая-нибудь внешняя библиотека (я рекомендую Магия изображений).Веб-сайт ImageMagick также содержит документацию и примеры.

Ознакомьтесь с библиотекой OpenCV , разработанной Intel .

Если вы привязаны к формату файла BMP, довольно просто самостоятельно посмотреть на заголовок и получить пиксели. Посмотрите этот поиск в Google.Одним из наиболее интересных совпадений является здесь.Самая нелогичная часть заключается в том, что каждая строка пикселей выровнена по 4 байтам.Кроме того, следите за сжатыми БМП...(Мой опыт показывает, что у многих сторонних инструментов возникают проблемы со сжатыми BMP, поэтому, возможно, некоторые библиотеки, с которыми вы сталкиваетесь, также будут ...)

Если вы не привязаны к формату файла BMP, я рекомендую libpng.В руководство пользователя предоставляет некоторый пример кода, который довольно понятен.

Как предлагали другие, возможно, вы захотите использовать внешнюю библиотеку, такую как SDL.Если вы хотите чему-то научиться и сделать это самостоятельно, посмотрите мой ответ на этот очень похожий вопрос: Получение значений RGB для каждого пикселя из растрового изображения с разрешением 24 бит/с для преобразования в формат GBA на C где вы найдете C-код, который выводит каждый пиксель, и загляните на страницу Википедии о bmp-файлах, потому что это очень хорошо.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top