ImageMagick:替换除特定颜色列表之外的所有内容

ImageMagick: Replace everything except specific list of colors

使用 ImageMagick,如何用透明度替换特定颜色列表以外的所有内容。

例如,源图像:

我想用透明度替换除青色、蓝色和品红色以外的所有内容(最好使用一些模糊因子):

我试过 +opaque "#0000ff" 但一次只能使用一种颜色。还有其他方法吗?

使用 ImageMagick,您可以使用“-transparent”运算符的加号“+”形式使除指定颜色之外的所有内容都透明。 运行 在输入的克隆上使用您选择的每种颜色一次,删除原始输入,展平剩余的三个图像,然后写入输出。

convert input.png -background none -fill none -fuzz 5% \
   \( -clone 0 +transparent "#ff00ff" \) \
   \( -clone 0 +transparent "#0000ff" \) \
   \( -clone 0 +transparent "#00ffff" \) \
      -delete 0 -flatten result.png