如何批量将BMP图片转为黑白并直接覆盖原有文件
你原命令执行后生成带序号的新文件,是因为该命令会将所有匹配到的bmp文件作为批量输入统一处理,输出时按顺序生成新文件自动加序号区分,无法直接匹配覆盖原文件。可以用以下两种方案实现原地覆盖:
方案1:使用ImageMagick自带的mogrify工具(最简便)
mogrify本身就是设计用于批量原地修改图片的工具,不需要额外写循环,直接执行以下命令即可:
mogrify -monochrome *.bmp
这个命令会直接对当前目录下所有bmp文件应用黑白效果,直接覆盖原文件,不会生成带序号的新文件。
方案2:使用循环搭配convert命令
如果习惯用convert,可以写遍历循环逐个处理单张图片,避免多输入多输出自动加序号的问题,Bash环境下命令如下:
for img in *.bmp; do convert "$img" -monochrome "$img"; done
遍历每个bmp文件,处理后直接写入原路径覆盖原文件。
注意:直接覆盖原文件有数据丢失风险,建议操作前先备份所有原始图片,或先拿几张测试图片验证命令效果符合预期后,再批量执行。
内容的提问来源于stack exchange,提问作者Elahe Kamel
相关产品推荐
相关产品推荐

