0

Is there a easy way to convert all images in a folder, so every pixel with a specific color is removed?

4

1 回答 1

2

您应该定义“删除”的含义。如果您的意思是用其他(背景)颜色替换,您可以像这样转换单个文件:

convert -fill REPLACEMENT_COLOR -opaque ORIGINAL_COLOR \
        ORIGINAL_IMAGE MODIFIED_IMAGE

如果“删除”是指使像素透明,那么您可以像这样转换单个文件:

convert -transparent ORIGINAL_COLOR ORIGINAL_IMAGE MODIFIED_IMAGE

其中 ORIGINAL_IMAGE 和 MODIFIED_IMAGE 分别是您的输入和输出图像文件, ORIGINAL_COLOR 和 REPLACEMENT_COLOR 是ImageMagick 颜色格式的原始颜色和替换颜色。

现在,例如,这会将当前目录中所有图像中的所有红色像素替换为白色像素,并使用前缀为“modified_”的名称保存它们:

for f in *; do
    convert -fill white -opaque red "$f" "modified_$f"
done
于 2013-05-10T09:36:58.500 回答