代码之家  ›  专栏  ›  技术社区  ›  badner

8位/颜色RGB和8位颜色映射之间的差异

  •  1
  • badner  · 技术社区  · 6 年前

    我运行了命令:

    file *
    

    得到输出:

    spec_wav_17.png:           PNG image data, 5 x 128, 8-bit colormap, non-interlaced
    spec_wav_17.pngresize.png: PNG image data, 5 x 128, 8-bit/color RGB, non-interlaced
    

    我在这两种格式的结果上有很大的不同,在这两种格式中,RGB产生更好的结果,我正在试图弄清楚到底发生了什么。

    我在手册中查找了文件,但没有找到关于这些格式的任何信息。 https://linux.die.net/man/1/file

    2 回复  |  直到 6 年前
        1
  •  3
  •   Poshi    6 年前

    8位颜色映射意味着您有一个8位整数和一组颜色之间的映射。有了8位,您可以得到256个不同的条目,每个条目指向不同的颜色,如1->白色、2->黄色、3->黑色……等等。

    8位/颜色RGB表示每个像素由三种颜色(R、G和B、红色、绿色和蓝色)表示,每个颜色由一个8位整数表示。这意味着每种颜色可以有256种色调,从黑色到颜色。这三种颜色合起来就是最终的颜色。在这种情况下,调色板的总颜色是256*256*256色。

    所有这些都意味着彩色地图图像的颜色非常少,每像素仅使用一个bype,而RGB图像的颜色为1600万,每像素使用3个字节(原始图像,无压缩)。

        2
  •  2
  •   Mark Setchell    6 年前

    前者有一个256色的调色板,在图像中的每个位置都存储一个数字,表示256色中的哪一种在那个位置。

    后者存储3个数字,一个表示红色,一个表示绿色,一个表示蓝色,每个像素位置的范围为0到255,因此每个像素可以是1670万种颜色(256 x 256 x 256)中的任何一种,而不是256种颜色中的任何一种。