如果宽度大于高度,则旋转图像

如果宽度大于高度,则旋转图像

我有几千个不同尺寸的矩形图像。我希望它们的高度都大于宽度。我想通过将所有高度小于宽度的图像旋转 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

相关内容