0

我使用以下形式的识别命令:

identify -verbose image.png

部分输出是:

  Colors: 8
  Histogram:
     49602: ( 49, 51, 39) #313327 srgb(49,51,39)
     36492: ( 98,121,135) #627987 srgb(98,121,135)
     21728: ( 98,182,240) #62B6F0 srgb(98,182,240)
     39526: (121,131, 75) #79834B srgb(121,131,75)
     34298: (165,171,147) #A5AB93 srgb(165,171,147)
     29957: (185,200,226) #B9C8E2 srgb(185,200,226)
     18767: (210,185, 67) #D2B943 srgb(210,185,67)
     31774: (246, 69, 44) #F6452C srgb(246,69,44)
  Colormap entries: 9
  Colormap:
         0: (121,131, 75) #79834B srgb(121,131,75)
         1: ( 49, 51, 39) #313327 srgb(49,51,39)
         2: (210,185, 67) #D2B943 srgb(210,185,67)
         3: (165,171,147) #A5AB93 srgb(165,171,147)
         4: (185,200,226) #B9C8E2 srgb(185,200,226)
         5: ( 98,121,135) #627987 srgb(98,121,135)
         6: ( 98,182,240) #62B6F0 srgb(98,182,240)
         7: (246, 69, 44) #F6452C srgb(246,69,44)
         8: (255,255,255) #FFFFFF white

我看到与直方图中相同的颜色加上白色,但在颜色图中也出现了不同的顺序。

两者有什么区别?

4

1 回答 1

2

下的第一行Histogram

49602: ( 49, 51, 39) #313327 srgb(49,51,39)

告诉你图像中有 49,602 个像素,颜色为sRGB(49,51,39). 所以它告诉你每种颜色出现的频率或频率。


下面的 9 行Colormap:是图像的调色板

让我们看看第一行:

0: (121,131, 75) #79834B srgb(121,131,75)

这意味着无论颜色srgb(121,131,75)出现在图像中的何处,我们都只将调色板索引存储0在该位置,而不是 color 121,131,75。这意味着我们只使用 1 个字节来存储 a0而不是存储 3 个字节的 RGB,这意味着我们节省了 2/3 的空间。它是一个“查找表”调色板

调色板用空间换取色彩准确性。一般来说,它们是原始图像大小的 1/3,但通常只能存储 256 种唯一颜色,而不是传统 RGB 图像的 16,777,216 种颜色。

只是为了好玩,让我们创建这个平滑的灰度渐变和一些随机噪声作为传统的 RGB888 图像(输出为 75kB):

magick -size 40x600 gradient: \( xc: +noise random \) +append -rotate 90 PNG24:a.png

在此处输入图像描述

现在做同样的事情,但是让ImageMagick创建一个调色板图像(它的大小为 25kB):

magick -size 40x600 gradient: \( xc: +noise random \) +append -rotate 90 PNG8:a.png

在此处输入图像描述

这里有一个更长的例子解释。

于 2020-04-28T10:24:33.690 回答