osh*_*nen 5 command-line imagemagick image-manipulation
我有一组混合图像,每个图像的分辨率略有不同,纵横比与其他图像略有不同。
我试过使用类似的命令
convert -resize
Run Code Online (Sandbox Code Playgroud)
和
convert -crop
Run Code Online (Sandbox Code Playgroud)
但似乎无法找出正确的命令来使所有图像的宽度为 1024,纵横比为 6x4,而不会导致图像拉伸或被压扁。
您希望所有照片都是 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
Run Code Online (Sandbox Code Playgroud)
然后,您只需使脚本可执行。(假设您将脚本保存为rename.sh,chmod u+x rename.sh
然后运行。)然后您运行该脚本./rename.sh
,该脚本将调整同一目录中所有图像的大小。