将图像调整大小并将其裁剪为 6x4 的宽高比和 1024 像素的宽度

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,而不会导致图像拉伸或被压扁。

Mus*_*aul 9

您希望所有照片都是 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.shchmod u+x rename.sh然后运行。)然后您运行该脚本./rename.sh,该脚本将调整同一目录中所有图像的大小。