Bash → Ориентация изображения и EXIF

Написал небольшой баш-скрипт, чтобы менять ориентацию фоток без преобразования их изображения, а заменой битов ориентации в EXIF-информации. Генерирует все восемь вариантов. Пусть будет тут:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
#!/usr/bin/env bash

if ! [[ -f $1 ]]; then
    echo "File does not exist"
    exit 1
fi

for i in $(seq 1 1 8); do
    fout="${i}_${1}"
    exiftool -n -Orientation=$i -o $fout $1
done

Orientation=1

Выше ориентация 1, ниже - 2

Orientation=2

И таблицу добавлю с текстовой расшифровкой числовых кодов:

0th Row 0th Column
1 Horizontal (normal) topleft side
2 Mirror horizontal top right side
3 Rotate 180 bottomright side
4 Mirror vertical bottomleft side
5 Mirror horizontal, rotate 270 CW left sidetop
6 Rotate 90 CW right sidebottom
7 Mirror horizontal, rotate 90 CW right sidebottom
8 Rotate 270 CW left sidetop

UPD: Заодно узнал, что в моём бложике предварительная обработка изображений, т.е. превьюшки и конвертайция в webp и avif ориентацию из EXIF не учитывают. Исправил 😄

Комментарии

0 комментариев Написать что-нибудь
Или войдите, чтобы не заполнять форму:
Адрес электронной почты нигде не отображается, необходим только для обратной связи.
Напрограммировано на Go 1.24.2, версия движка ecff48a