我想用另一种颜色替换 PNG 徽标中的所有黑色实例。我试过:
convert source.png -fill #123456 -opaque black out.png
Run Code Online (Sandbox Code Playgroud)
但是标志有一些没有转换的透明黑色像素。如何更改每个黑色像素,但保持每个黑色像素的透明度?
convert in.png xc:"#ff0000" -channel RGB -clut out.png
Run Code Online (Sandbox Code Playgroud)
这将完成工作。如果 in.png 具有 alpha 通道,则 in.png 中的 RGB 通道将被替换为红色 (#ff0000),同时保持 alpha 通道不变。
这里会发生什么?in.png 是第一个输入图像。xc:"#ff0000" 是第二个输入图像(xc: 特殊文件被 ImageMagick 解释为一个用给定颜色填充的图像)。-clut 选项(“颜色查找表”)将第二个图像解释为查找表并将其应用于第一个图像中的值。由于第二个图像是单色的,因此在此示例中,第一个图像中的每种颜色都映射为红色。最后一个文件名 (out.png) 被解释为输出文件。
为什么 -clut 不影响 alpha 通道?好吧,您可以使用 -channel 选项设置受影响的频道。它必须在 -clut 之前。RGB 是我们在这里想要的。
你可以尝试这样的事情:
convert source.png -channel RGB -fuzz 99% -fill blue -opaque black dest.png
Run Code Online (Sandbox Code Playgroud)
但只有当您的徽标是单色的(如 iOS 图标 - 只有一种颜色和透明度)时,它才有效。
| 归档时间: |
|
| 查看次数: |
3046 次 |
| 最近记录: |