使用预定义的颜色代码将 jpg 转换为 png?
Convert jpg to png with predefined color codes?
我有一些基于 66 色的地图,不幸的是几个月前我以 jpg 格式保存了它们。
我发现我可以转换为 png,并将其设置为 66 种颜色,但是,无论如何都可以预定义这 66 种颜色,例如接近 #888888 的颜色将转换为 #888888而不是 878787 和 878887。
还有一个问题是地图不包含所有 66 种颜色(通常是 30 种左右)所以现在我可能会得到 4 种不同类型的白色。 (这就是为什么我需要这个解决方案)
这甚至可以用 imagemagick 实现吗?
您可以制作一个 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
。
我有一些基于 66 色的地图,不幸的是几个月前我以 jpg 格式保存了它们。
我发现我可以转换为 png,并将其设置为 66 种颜色,但是,无论如何都可以预定义这 66 种颜色,例如接近 #888888 的颜色将转换为 #888888而不是 878787 和 878887。
还有一个问题是地图不包含所有 66 种颜色(通常是 30 种左右)所以现在我可能会得到 4 种不同类型的白色。 (这就是为什么我需要这个解决方案)
这甚至可以用 imagemagick 实现吗?
您可以制作一个 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
。