如何替换颜色(形状颜色和背景颜色)?

den*_*pro 6 colors imagemagick image-editing

我想将白色背景更改为#3D94DB(十六进制三元组符号)并将黑线更改为白色。图像如下:

哦

这是我所取得的成就:

一

convert input.png +level-colors red, output.png
Run Code Online (Sandbox Code Playgroud)

我将线条的颜色更改为红色。所以白色很容易。

如何更改两种颜色?

imagemagick读取:color_basics

convert balloon.gif   -alpha set  -channel RGBA \
                    -fill none -opaque blue   balloon_none.gif
Run Code Online (Sandbox Code Playgroud)

所以这是我的代码:

 convert input.png +level-colors gray, output.png
 convert output.png -fill "#3D94DB" -opaque white target.png
Run Code Online (Sandbox Code Playgroud)

结果

并颠倒过来,结果很尴尬。

使用 Photoshop 很容易,但我有很多图标要处理。

你能告诉我一个更好的解决方案吗?

Ana*_*man 8

我想将白色背景更改为 #3D94DB(十六进制三元组符号)并将黑线更改为白色。

您可能已经注意到,示例图标中的“黑”线实际上有细微的渐变(从黑色到白色)(可能是由于抗锯齿)。这些需要保持完整以帮助保持图标的外观:

带有渐变的原始图标

根据 Imagemagick 使用指南对Level Adjustment by Color+level-color将有助于更改“黑色”和“白色”颜色,以及(大致)给出适当的颜色渐变:

convert input.png +level-colors white,"#3D94DB" target.png
Run Code Online (Sandbox Code Playgroud)

使用您的示例图标,此命令会产生以下结果:

目标图标结果 - 蓝底白字


注意事项:

  • 在上面的命令中,替换颜色顺序是先黑后白。

  • 替换颜色之间不应有空格,否则会导致命令失败。

  • 鉴于所需的效果,该命令仅适用于黑白图像。其他颜色的图像会产生意想不到的效果。同样,如果将彩色图像转换为灰度图像,则双色图像效果最佳。