如何擦除文件夹内每个文件的特定颜色的所有像素?

时间:2013-05-10 07:55:26

标签: linux shell unix imagemagick

是否有一种简单的方法可以转换文件夹中的所有图像,因此每个具有特定颜色的像素都会被删除?

1 个答案:

答案 0 :(得分: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 color format中的原始颜色和替换颜色。

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

for f in *; do
    convert -fill white -opaque red "$f" "modified_$f"
done