您可以制作 66 种颜色的 66x1 像素“样本”,方法是获取您的原始 PNG 图像之一并提取独特的颜色,如下所示:
magick original.png -unique-colors swatch.png
然后你可以这样应用它:
magick unhappy.jpg -remap swatch.png result.png
更多详情here.
这是一个具体的例子。这是我们的地图:
首先,制作我们希望在输出图像中出现的 5 种颜色的样本:
magick xc:"rgb(10,100,140)" xc:"rgb(240,190,120)" xc:"rgb(70,130,30)" xc:"rgb(220,230,230)" xc:"rgb(40,80,50)" +append swatch.png
现在将原始颜色中的所有颜色重新映射为样本中的 5 种颜色:
magick map.jpg +dither -remap swatch.png result.png
或者,我们可以让 ImageMagick 为样本选择最佳颜色,如下所示:
magick map.jpg -colors 7 -unique-colors swatch.png
重新映射与之前相同,但使用 ImageMagick 选择的颜色:
magick map.jpg +dither -remap swatch.png result.png
请注意,您可以同样使用十六进制代码 (or HSL, or Lab colours):
convert xc:"#0a658c" xc:"#f0be78" xc:"#46821e" xc:"#dce6e6" xc:"#285032" +append swatch.png
请注意,以上命令假定 ImageMagick v7。如果您必须使用旧的 v6 语法,请将 magick 替换为 convert。