如何使用ImageMagick给黑色透明的PNG图标上色

9
如何使用ImageMagick将具有透明背景的黑色PNG图像进行着色?
用例:
您有几个这样的PNG图像:
Source image
我想要将它们着色,如下所示:
Wished result
我想使用ImageMagick的convert命令,以便编写脚本处理数百个图标。
3个回答

5

如何使用ImageMagick给黑色和透明的PNG图像上色,使它们变成这样。使用命令-fill <COLOR>非常好用,你可以用人类可读的名称(如"红色")或HTML颜色代码替换"#1bbfc9"

convert target-black.png -fill "#1bbfc9" -colorize 100 target-blue.png

...允许一次性处理数百个图标的脚本化处理。

使用find命令,您可以递归处理数百个图标。
注意:这将替换原始文件。

find path/to/files  -iname '*.png' -exec convert "{}" -fill "#1bbfc9" -colorize 100 "{}" \;

5
您可以使用以下命令之一:
$ convert input.png +level-colors "red", output.png
$ convert input.png +level-colors "rgb(255,0,0)", output.png
$ convert input.png +level-colors "#ff0000", output.png

请注意,这里的,字符很重要。在,字符的左侧,我们告诉convert应该用哪种颜色来替换黑色,在右侧则告诉它应该用哪种颜色来替换白色。因此,在,字符之后不应输入任何内容。

来源


我该如何编辑这些命令以保留 alpha 透明度? - Khalid Hussain
我可以分成两个步骤来完成,首先应用你的命令 convert output.png -transparent white result.png,然后再进行第二步。但是,是否有办法能够在一个命令中实现这个目标呢? - Khalid Hussain
我感觉我的命令保留了透明度,但是你的意思是它不能与50%透明度一起使用吗?(我图标中的大多数像素具有100%或0%的透明度,因此我可能会错过这一点) - Thibault D.
1
我发现100%透明的图标被保留了。谢谢这个绝妙的提示!非常有用,可以快速创建我先前已购买许可证的图标的变化。 - Addison Klinke

1
使用ImageMagick,您可以使用mogrify一次处理整个图像文件夹,而不是使用convert,如果您想要相同的颜色。创建一个新的输出目录来保存着色文件。然后,cd到保存图像的文件夹。
cd path_to/image_folder
mogrify -format png -path path_to/new_folder -fill "cyan" -colorize 100 *.png


path_to替换为实际路径。

在fill命令中,您可以使用颜色名称、十六进制颜色或rgb(...)颜色,但在Linux/Mac OSX上需要用引号括起来。Windows不需要引号,但如果使用双引号也不会出现任何问题。

请参见mogrify


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接