【问题标题】:What is difference between export as pbm in RAW and ASCII format?以 RAW 和 ASCII 格式导出为 pbm 有什么区别?
【发布时间】:2020-02-29 10:20:05
【问题描述】:

当我在 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, 
}

这个问题困扰很久了,如果可以的话请帮忙。

【问题讨论】:

  • 这里都说明了en.m.wikipedia.org/wiki/Netpbm
  • 区别在于ASCII是文本。因此,如果您想查看像素值,而无需编写任何代码,请将其导出为 ASCII 并在文本编辑器中查看文件。

标签: c++ image image-processing gimp pbm


【解决方案1】:

ASCII和RAW的区别是:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-06
    • 2017-01-06
    • 1970-01-01
    • 2013-12-04
    相关资源
    最近更新 更多