Получение пиксельного значения файла BMP

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

6
задан user239468 28 December 2009 в 08:35
поделиться

2 ответа

Легким способом будет найти хорошую библиотеку для работы с изображениями для выбранной вами платформы и использовать ее.

  • Linux ImLib / GDK-Pixbuf (Gnome/GTK) / QT Image (KDE/Qt) должен быть способен делать то, что вам нужно.
  • Windows Я не знаком с соответствующей системной библиотекой, но MSDN Поиск "Bitmap" вероятно хорошее место для начала.
  • Mac OSX Какао имеет некоторые возможности для работы с изображениями, см. эту статью .

Трудным способом было бы открыть файл и интерпретировать внутри него двоичные данные. Для этого вам понадобится Спецификация файла BMP. Сначала я бы порекомендовал попробовать простой способ.

8
ответ дан 8 December 2019 в 03:53
поделиться

Необходимо изучить формат файла BMP. Проще читать несжатые 24-битные файлы BMP. Они содержат только заголовок в начале и RGB-значения каждого пикселя.

Для начала ознакомьтесь с примером растрового изображения 2x2 по адресу http://en.wikipedia.org/wiki/BMP_file_format. Выполните следующие действия.

  1. Создайте изображение в формате 2x2 BMP, показанное на Википедии.
  2. Откройте файл в бинарном режиме с помощью вашей программы на C.
  3. Ищите позицию байта 54.
  4. Считайте 3 байта.

Байты будут 0, 0 и 255 соответственно. (Не уверен, что это RGB. Я делал это давно и думаю, что порядок не RGB. Просто проверьте это.)

Так просто! Изучите заголовок BMP, чтобы подробнее разобраться в формате.

7
ответ дан 8 December 2019 в 03:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: