【发布时间】:2016-06-03 22:00:46
【问题描述】:
如何使用 ImageMagick 为具有透明背景的黑色 PNG 图像着色?
我想使用 ImageMagick 的 convert 命令,允许脚本一次处理数百个图标。
【问题讨论】:
标签: icons imagemagick imagemagick-convert
如何使用 ImageMagick 为具有透明背景的黑色 PNG 图像着色?
我想使用 ImageMagick 的 convert 命令,允许脚本一次处理数百个图标。
【问题讨论】:
标签: icons imagemagick imagemagick-convert
使用 ImageMagick,您可以使用 mogrify 一次处理整个文件夹的图像,而不是转换,如果您想要所有相同的颜色。创建一个新的输出目录来保存彩色文件。然后 cd 到保存图像的文件夹。
cd path_to/image_folder
mogrify -format png -path path_to/new_folder -fill "cyan" -colorize 100 *.png
将path_to 替换为您的实际路径。
您可以在填充命令中使用颜色名称、十六进制颜色或 rgb(...) 颜色,但在 Linux/Mac OSX 上将它们括在引号中。 Windows 不需要引号,但双引号不会引起任何问题。
【讨论】:
...我如何为黑色和透明 PNG 图像着色 [...] 以使用 ImageMagick 像这样 [...] 为它们着色
-fill <COLOR> 选项非常适合此目的。您可以将 "#1bbfc9" 替换为人类可读的名称(例如“red”)或 HTML 颜色代码。
convert target-black.png -fill "#1bbfc9" -colorize 100 target-blue.png
...允许一次编写和处理数百个图标
使用find 命令,您可以递归数百个。
警告:这将替换原件。
find path/to/files -iname '*.png' -exec convert "{}" -fill "#1bbfc9" -colorize 100 "{}" \;
【讨论】:
您可以使用以下命令之一:
$ 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 应该用哪种颜色替换black,在右边应该用哪种颜色替换white。因此,, 字符之后不应给出任何内容。
【讨论】:
convert output.png -transparent white result.png。但这可以在一个命令中实现吗?