【问题标题】:Difference between 8-bit/color RGB and 8-bit colormap8 位/颜色 RGB 和 8 位颜色图之间的区别
【发布时间】:2018-12-28 21:22:49
【问题描述】:
我运行了命令:
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
【问题讨论】:
标签:
bash
image
file
image-processing
【解决方案1】:
8 位颜色图意味着您有一个 8 位整数和一组颜色之间的映射。使用 8 位,您可以获得 256 个不同的条目,每个条目都指向不同的颜色,例如 1->white、2->yellow、3->black...等等。
8-bit/color RGB是指每个像素用三种颜色(R、G和B、红、绿、蓝)表示,每种颜色用一个8位整数表示。这意味着每种颜色可以有 256 种色调,从黑色到彩色。这三种颜色一起符合最终的颜色。在这种情况下,总调色板总共是 256*256*256 色。
所有这一切意味着颜色图图像的颜色很少,每个像素只使用一个字节,而 RGB 图像有 1600 万种颜色,每个像素使用 3 个字节(原始图像,无压缩)。
【解决方案2】:
前者有一个包含 256 种颜色的调色板,并且在图像中的每个位置存储一个数字,说明这 256 种颜色中的哪一种在该位置。
后者存储 3 个数字,一个代表红色,一个代表绿色,一个代表蓝色,每个像素位置的范围为 0..255,因此每个像素可以是 1670 万种颜色中的任何一种(256 x 256 x 256 ),而不是 256 种颜色中的任何一种。