如何使用ImageMagick批量调整JPG图片的亮度对比度?
解决ImageMagick批量调亮度去水印的问题
问题说明
- 有近500张带“好学近乎知 PDG”水印的JPG图片,来自超星PDG格式转换的PDF,将亮度调至110可消除水印。
- 使用ArchLinux系统的ImageMagick 7.1.1-18版本,执行参考命令时触发bash语法错误:
bash: syntax error near unexpected token (',原命令为:magick ./*.jpg -brightness-contrast %[fx:50-(mean*100)] output.png
错误原因
原命令中的%[fx:...]包含括号,bash会将括号视为特殊语法符号解析,导致报错;同时该命令是自动计算亮度值,并非直接设置亮度到110,不符合需求。
正确操作方案
1. 单张图片测试命令
先拿单张图片验证效果,执行:
magick 目标图片.jpg -brightness-contrast 110 处理后图片.jpg
-brightness-contrast的第一个参数就是亮度调整值,正数为提升亮度,直接设为110即可达到去水印效果。
2. 批量处理所有JPG(保留原文件)
遍历当前目录所有JPG,生成带_fixed后缀的处理后文件,避免覆盖原文件:
for file in ./*.jpg; do magick "$file" -brightness-contrast 110 "${file%.jpg}_fixed.jpg" done
3. 批量覆盖原文件(谨慎操作)
确认效果无误后,可直接修改原文件,使用mogrify工具:
mogrify -brightness-contrast 110 ./*.jpg
注:此操作会直接替换原文件,执行前建议备份所有图片。
内容的提问来源于stack exchange,提问作者Firestar-Reimu
相关产品推荐
相关产品推荐

