使用 Imagemagick 批量调整子目录中的图像大小

使用 Imagemagick 批量调整子目录中的图像大小

我正在尝试调整目录和子目录中的所有图像的大小。我有从这里得到的脚本:使用 mogrify 调整大文件大小,同时忽略小文件

并调整为:

identify -format '%w %h %i\n' ./*.jpg |
awk '$1 > 1200 || $2 > 1200 {sub(/^[^ ]* [^ ]* /, ""); print}' |
tr '\n' '\0' |
xargs -0 mogrify -resize '1200x1200'

但它只处理当前目录和 .jpg 扩展名 - 忽略大写 - .JPG

我尝试过做出调整,但没有取得太大进展。

答案1

你可以identify结合find, 例如:

find . -type f -iname "*.jpg" -exec identify -format '%w %h %i\n' {} \;

它将identify针对递归找到的名称以 .jpg 结尾(不区分大小写)的每个文件运行命令。

使用您的完整示例:

find . -type f -iname "*.jpg" -exec identify -format '%w %h %i\n' {} \; |
awk '$1 > 1200 || $2 > 1200 {sub(/^[^ ]* [^ ]* /, ""); print}' |
tr '\n' '\0' |
xargs -0 mogrify -resize '1200x1200'

相关内容