В чем разница между экспортом в формате pbm в формате RAW и ASCII? - PullRequest
0 голосов
/ 29 февраля 2020

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

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

Как преобразовать изображение 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 Ответ

0 голосов
/ 29 февраля 2020

Разница между ASCII и RAW составляет:

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

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

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

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

...