В чем разница между экспортом pbm в формате RAW и ASCII?

Когда я экспортирую изображение, как в GIMP, он спрашивает, сохранять ли в формате ASCII или в формате RAW, в чем разница? размер ASCII намного больше, чем необработанный формат для того же изображения (в 3 раза больше), почему так?

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

Как преобразовать изображение PBM в массив изображений C примерно так, как показано ниже. Чтобы уточнить мой последний вопрос: как получить файл output.h(который содержит массив информации о пикселях изображения) из файла pbm.

#include <stdint.h>

    static const struct
    {
        uint16_t width;
        uint16_t height;
        uint8_t pixel_data[205 * 62 * 2 + 1];
    } file_name = {
        205, 62,
        { 181, 182, 181, 182, 181, 182, 181, 
       ......
       ......
        81, 182, 181, 182, 181, 182, 181, 
}

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

1 ответ

Разница между ASCII и RAW:

  • ASCII сохранит каждый пиксельный цветовой канал RGB как текст, а
  • RAW сохранит значения RGB в двоичном формате

Формат RAW меньше, так как для каждого пикселя требуется меньше байтов, чем для текста.

Пример: каждый цвет будет храниться в 3 байтах (RAW) и может быть до 9 байтов для ASCII (белый цвет, например: 255 255 255).

Я не понял вашего последнего вопроса, но если у вас есть файл PBM и вы хотите открыть его в программе на C/C++, вы можете, например, использовать библиотеку FreeImage. Эта библиотека поддерживает несколько форматов изображений, включая PBM.

Другие вопросы по тегам