我有一组混合图像,每个图像的分辨率略有不同,纵横比与其他图像略有不同。
我尝试过使用类似的命令
convert -resize
和
convert -crop
但似乎无法找出正确的命令来使所有图像的宽度为 1024,长宽比为 6x4,而不会导致图像拉伸或被压扁。
答案1
您希望所有照片都是 6x4、宽度为 1024,对吧?这意味着它们的高度应为 683 像素。
如果这是正确的,那么您正在寻找的是......
convert <input_image> -resize 1024x683^ -gravity center -extent 1024x683 <output_image>
...你要替换的地方<输入图像>与要调整大小的图像的文件名,以及<输出图像>与新的文件名。
这将裁剪边缘以适应宽高比并将其大小调整为 1024x683。它会使小图像变大,也会使大图像变小以适合您的尺寸。
当您想要调整目录中所有图像的大小时,您需要编写一个快速的 bash 脚本,它看起来像......
#!/bin/bash
for f in ./*.[jJ][pP][gG]
do
echo "$f"
convert "$f" -resize 1024x683^ -gravity center -extent 1024x683 "print_$f"
done
然后您只需使脚本可执行即可。 (假设您将脚本保存为重命名.sh,运行chmod u+x rename.sh
。)然后运行脚本./rename.sh
,该脚本将调整同一目录中所有图像的大小。