Поворот изображения, который работает

Я не уверен, почему это так сложно под Ubuntu/Linux. В Windows, если я поворачиваю изображение в проводнике Windows или в средстве просмотра изображений Windows, оно сохраняет эту ориентацию в любом приложении. Но в Ubuntu некоторые приложения вращаются и сохраняют это вращение, но другие приложения игнорируют вращение и наоборот.

Моя главная проблема заключается в том, что я не могу добиться того, чтобы ориентация моих фотографий была установлена ​​правильно и учитывалась всеми приложениями. Видимо, я держу свой телефон в разных ориентациях при съемке, и я хотел бы починить их раз и навсегда. Но, похоже, не существует простого руководства о том, как это сделать, просто случайные сообщения о редактировании изображений в командной строке, которые не работают, если мне нужно открыть изображения в программе просмотра, а затем закрыть и запустить команду для них и откройте их снова, чтобы проверить... Это безумие.

Лучшее, что я могу найти, - это загадочные обсуждения данных Exif без какой-либо четкой инструкции для начинающих.

Есть ли у кого-то простой учебник о том, как сделать это просто и навсегда, чтобы я мог раз и навсегда исправить мои тысячи фотографий?

Спасибо

0 ответов

Я столкнулся с той же проблемой и написал что-то:

Фактически он вращает все данные файлов изображений в текущей папке с помощью imagemagick. convert, а затем сбрасывает информацию exif, используя exiftool. Возможно, вам потребуется добавить еще кейсы, для меня этого было достаточно.

#!/usr/bin/env bash

for filename in ./*; do
        rotation=$(exiftool -Orientation -n $filename)
        rotationnumber=${rotation: -1}

        if [ "$rotationnumber" == "1" ]; then
                echo "not rotated " $filename
        elif [ "$rotationnumber" == "6" ]; then
                echo "rotated 90 CW " $filename
                # rotate data 
                convert $filename -rotate 90 $filename
                # set exif orientation to not rotated
                exiftool -Orientation=1 -n $filename
        else
                echo "unknown " $filename $(exiftool -Orientation $filename)
        fi
done
rm *_original

будьте осторожны, он удаляет исходные данные!

Другие вопросы по тегам