批量替换彩色图像,Linux 上的特定颜色除外

Batch replace colour images, except a specific colour on Linux

我有 456 个 .PNG 图标,蓝底白图,但背景是像素化的。所以当我使用 mogrify 替换颜色时,图标的很多部分都不会变成我想要的红色,而是停留在蓝色阴影中。有没有办法替换所有颜色,所有深浅不一的蓝色,并保持白色图标完好无损?因为 mogrify 重新着色图标会使整个图标变成红色,甚至是白色部分。

我觉得解决方案应该很简单,但是在谷歌搜索和 Imagemagick 和 Phatch 的一些混乱之后,我似乎无法弄清楚。

我有点需要一个批处理解决方案,因为手动设置所有图标的主题是......我不想做的事情。

我愿意接受任何建议,如果这个问题重复,我会提前道歉!

如果你需要更多的信息,尽管问,我可以给你!

“+不透明颜色”选项将 select 除了命名颜色之外的所有颜色,并将它们变成填充颜色。因此,

mogrify -fill red +opaque white *.png

会将除白色像素以外的所有像素都变成红色。