0

当我在 GIMP 中导出图像时,它要求以 ASCII 格式或 RAW 格式保存,有什么区别?ASCII 的大小远高于相同图像的原始格式(高 3 倍),为什么会这样?

我想看看每个像素值是如何存储在图像中的,我该怎么做?是否有任何直接的 GUI 工具不会让我为此编写任何代码?

如何将 PBM 图像转换为 C 图像数组,如下所示。详细说明我的最后一个问题:如何从 pbm 文件中获取 output.h(包含图像的像素信息数组)文件。

#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, 
}

真的被这个问题困扰了很长时间,如果可能的话,请帮忙。

4

1 回答 1

0

ASCII 和 RAW 的区别在于:

  • ASCII将每个像素 RGB 颜色通道保存为文本,并且
  • RAW将 RGB 值保存为二进制

RAW 格式更小,因为每个像素而不是文本需要更少的字节。

示例:每种颜色将存储在 3 个字节 (RAW) 中,对于 ASCII 最多可以存储 9 个字节(例如白色:255 255 255)。

我不明白你的最后一个问题,但如果你有一个 PBM 文件并想在 C/C++ 程序中打开它,你可以使用FreeImage库,例如。该库支持多种图像格式,包括 PBM。

于 2020-02-29T10:52:46.360 回答