在 identify 命令的输出中,colormap 和 historam 有什么不同?

问题描述 投票:0回答:1

我使用了如下形式的 identify 命令。

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

我看到与Histogram加白色相同的颜色 但顺序不同的颜色也出现在colormap中。

这两者之间有什么不同?

imagemagick imagemagick-convert imagemagick-identify
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 在该位置,而不是颜色 121,131,75. 这意味着我们只用一个字节来存储一个 0 而不是存储3个字节的RGB,这意味着我们节省了23的空间。它是一个 "查询表"调色板.

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

为了好玩,让我们把这个平滑的灰度渐变和一些随机的噪声创建为传统的RGB888图像(它的大小为75kB)。

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

enter image description here

现在做同样的事情,但要遵守规定。图片魔术 来创建一个调色板图像(它的大小为25kB)。

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

enter image description here

有一个较长的解释和例子 此处.

© www.soinside.com 2019 - 2024. All rights reserved.