В чем разница между экспортом 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.