【问题标题】:How to colorize a black-transparent PNG icon with ImageMagick如何使用 ImageMagick 为黑色透明的 PNG 图标着色
【发布时间】:2016-06-03 22:00:46
【问题描述】:

如何使用 ImageMagick 为具有透明背景的黑色 PNG 图像着色?

用例:
你有几个这样的 PNG 图片:

我想像这样给它们上色:

我想使用 ImageMagick 的 convert 命令,允许脚本一次处理数百个图标。

【问题讨论】:

    标签: icons imagemagick imagemagick-convert


    【解决方案1】:

    使用 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 不需要引号,但双引号不会引起任何问题。

    mogrify

    【讨论】:

      【解决方案2】:

      ...我如何为黑色和透明 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 "{}" \;
      

      【讨论】:

        【解决方案3】:

        您可以使用以下命令之一:

        $ 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。因此,, 字符之后不应给出任何内容。

        Source

        【讨论】:

        • 如何编辑这些命令以保持 alpha 透明度?
        • 我可以分成两部分,首先应用你的,然后convert output.png -transparent white result.png。但这可以在一个命令中实现吗?
        • 在我看来,我的命令保留了透明度,但您的意思是说它不适用于 50% 的透明度吗? (我图标中的大多数像素都有 100% 或 0% 的透明度,所以我可能会错过)
        • 我发现保留了 100% 透明的图标。感谢这个绝妙的提示!对于快速创建我之前购买的许可证的图标变体非常有用
        猜你喜欢
        • 1970-01-01
        • 2011-03-31
        • 1970-01-01
        • 2012-06-25
        • 2021-07-02
        • 2020-04-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多