我可以使用什么命令将文件夹中非 JPG(主要是 PNG 和 BMP)的所有图像转换为 JPG?我还希望转换质量为 100%。我希望用转换后的图像来替换原始图像。
答案1
假设该文件夹中只有图像,您可以
ls | grep -v jpg$
获取所有不以 结尾的文件名jpg
,我认为这是您要转换的所有图像。然后您可以使用该convert
工具图像魔术师像这样
ls | grep -v jpg$ | while IFS= read -r FILENAME
do
convert "${FILENAME}" "${FILENAME%.*}.jpg"
done
该convert
命令扩展为convert <file name as printed by ls> <file name without extention>.jpg
.扩展名jpg
会告诉convert
您转换为 jpg 格式。
答案2
要转换当前目录中的所有 和 然后删除原始文件.png
:.bmp
mogrify -format jpg -quality 100 ./*.{png,bmp}
rm ./*.{png,bmp}
如果您的 shell 支持扩展通配符,则要转换除 之外的所有文件.jpg
,例如bash
:
shopt extglob
mogrify -format jpg -quality 100 ./*.!(jpg)
rm ./*.!(jpg)
或者zsh
:
setopt extended_glob
mogrify -format jpg -quality 100 ./^*.jpg
rm ./^*.jpg
递归:
find . -type f ! -name '*.jpg' -exec \
mogrify -format jpg -quality 100 {} + -exec rm {} +