转换为png时如何更改图像中的单一颜色?

How to change a single colour in an image when converting to a png?

目标: 将图标(单色、黑色、透明背景)从 svg 或 xcf 转换为 png 并更改图标的颜色(例如黑色变为白色或指定的十六进制颜色)。

ImageMagick 版本: 7.0.11-6

目前进度: 我有一个 Windows 批处理文件

我取得了一些成功,但发现

是否有更好的方法为这些 png 重新着色?或者停止模糊的方法? 我刚刚开始使用 ImageMagick。非常感谢!

当前批处理文件

@echo off

set resolution=72
set width=48

setlocal enableDelayedExpansion

for %%i in (*.xcf) do (
    echo Converting [ %%i --^> %%~ni.png ] ^(%width%@%resolution%^)
    
    for %%x in (os-col-*.*) do (        
        magick %%i -resize %width% -resample %resolution% -remap %%x %%~ni-%width%-%%x.png
        echo Done %%i - %%x
    )
    
    echo Done %%i
)

黑色png,不模糊

应用了 -remap 的 png 模糊度

使用 ImageMagick,如果您的输入是一种颜色,并且您想在保持透明度的同时将其更改为另一种颜色,则此命令应该可以做到这一点...

convert input.png -fill #75965b -colorize 100 result.png

创建此输出图像....

这是 IMv6 语法。对于 IMv7,使用“magick”而不是“convert”。