我有几千个不同尺寸的矩形图像。我希望它们的高度都大于宽度。我想通过将所有高度小于宽度的图像旋转 90 度来实现此目的。我该如何使用 imagemagick 做到这一点?
答案1
您可以编写一个简单的函数,如下所示,获取图像的宽度和高度,然后检查 w>h 是否然后旋转它。
rotate() {
(( $(identify -format '%w > %h' "$1") )) && convert "$1" -rotate 90 "rotated_$1";
}
称呼它为rotate image.png
.
另一种方法是由用户414777使用exif工具,即根据EXIF 方向标签:
exif -co rotated_"$1" --ifd=0 --tag=0x0112 --set-value=6 "$1"
开关说明:
TagID TagName Writable Group Values/Notes
0x0112 Orientation int16u IFD0 1 = Horizontal (normal)
2 = Mirror horizontal
3 = Rotate 180
4 = Mirror vertical
5 = Mirror horizontal and rotate 270 CW
6 = Rotate 90 CW
7 = Mirror horizontal and rotate 90 CW
8 = Rotate 270 CW