将图像文件夹批量调整为两种不同大小并重命名文件 imagemagick (Mac OS)

Bulk resize folder of images to two different sizes and rename files imagemagick (Mac OS)

我想遍历一个文件夹中的一些图像,调整大小并将它们裁剪成两种不同的尺寸,然后重命名它们。我可以获得一组使用此代码:

for f in *.png; do convert "$f" -resize 1500x \! -gravity Center \! -extent 1500x500 \! -set filename:f "%[t]-twitter" "%[filename:f].png"
done

这给了我一张大小合适的图片,从中心裁剪。如果我然后 运行 再次将其裁剪为 1100px 宽,我最终会创建两个版本,因为我是从原件创建的,并为 Twitter 图片调整了大小。我找不到一种方法来从一个文件夹中批量组合多个调整大小和重命名以及 运行,同时输出到同一个文件夹中。请问有人有什么建议吗?

我相信在 Imagemagick 中,您可以按照以下方式进行操作(未经测试)。如果需要,-extent 会裁剪,否则它会填充(所以你可能想在 -extent 之前设置 -background 颜色,即使它没有被使用)

for f in *.png; do 
convert "$f" -set filename:f "%[t]-twitter" \
\( -clone 0 -resize 1500x -gravity Center -extent 1500x500  +write "%[filename:f]_1500.png" \) \
\( -clone 0 -resize 3000x -gravity Center -extent 3000x100  +write "%[filename:f]_3000.png" \) \
null:
done

以上会将输入调整为两种不同的大小。您可以根据需要指定尺寸。

如果要调整第一个调整大小以进行第二个调整,则将 -clone 0 更改为 -clone 1。