Повернуть изображение, если ширина больше высоты

Это ls’ представление неработающих символических ссылок; см. Что означает красное -имя файла?

Тот факт, что ссылки красные, или даже символические ссылки не работают, ничего не говорит о том, работают пространства имен или нет; это связано только с представлением пространства имен в /proc. Существование файлов означает, что соответствующие пространства имен настроены и, предположительно, работают правильно.

0
03.10.2020, 10:59
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
2
18.03.2021, 23:00

Теги

Похожие вопросы