Автоматический поворот изображений (по данным из Exif). Linux статьи
Написать статью
Войдите, чтобы писать статьи

Автоматический поворот изображений (по данным из Exif)

5

Поворот изображений jpg автоматически Недавно столкнулся со следующей проблемой. Нужно было автоматически повернуть на 90 градусов некоторые вертикальные фотографии с фотоаппарата. При просмотре их в Nautilus это делается автоматически, так как в данных Exif хранятся данные об ориентации изображения. Но, если, например, нужно опубликовать в интернете сотню фотографий, тогда их нужно предварительно повернуть. Сделать это можно кучей разных способов, но я приведу один, который меня полностью устроил.

Для автоматического вращения (поворота) изображений (фотографий, jpeg) я воспользовался утилитой exiftran. Данная утилита умеет автоматически вращать изображения, используя данные об ориентации в Exif. А так же после действий над файлом, exiftran умеет записывать новые значения в Exif.

Итак, вы должны положить все файлы, которые вы хотите повернуть в какую-нибудь папку. Открыть терминал и перейти в эту папку, используя команду cd:

cd /home/yuriy/myphotos

Теперь нужно запустить утилиту exiftran:

exiftran -aip ./*.JPG

Последний параметр ./*.JPG это путь, а точнее маска файлов, которые нужно обработать. В данном случае мы указали, что хотим обработать все файлы с расширением JPG в текущей директории. Можно указать полный путь, например: /home/pingvinus/myfotos/*.jpeg. Учтите, что регистр символов имеет значение, my.JPG и my.jpg это два разных файла.

Использованные ключи:
-a — использовать данные Exif для определения правильной ориентации.
-i — перезаписывать исходный файл (inplace editing, повернутое изображение пишется в тот же файл).
-p — сохранять исходные временные метки (не изменять их).

Дополнительная информация

Полную информацию по exiftran можно получить выполнив команду:

man exiftran

Если вы не очень любите командную строку (консоль), тогда для пакетной обработки изображений можно использовать утилиту Phatch.

Чтобы не использовать команду cd можно открывать терминал сразу в нужной папке.

Лайков: +1
войдите, чтобы ставить лайки
5
  • Опубликовано: 25.05.2012

Комментарии

ithilion
25.05.2012
18:24
Постоянная ссылка на комментарийПостоянная ссылка на комментарий
+1
войдите, чтобы ставить лайки
Только, наверное, man exiftran, а не max?
yuriy
Активный пользователь
Активный
25.05.2012
18:42
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийithilionРодительский комментарий
+1
войдите, чтобы ставить лайки
Ok :) Исправил.
dima
28.05.2012
17:28
Постоянная ссылка на комментарийПостоянная ссылка на комментарий
+1
войдите, чтобы ставить лайки
можете почитать про mogrify. многое умеет. не раз меня выручала при массовой конвертации и ресайзе
ness
Активный пользователь
Активный
08.05.2016
11:53
Постоянная ссылка на комментарийПостоянная ссылка на комментарий
+1
войдите, чтобы ставить лайки
yuriy, извиняюсь, что не совсем по теме, но такой вопрос. мне нужно обрезать картинки с разными расширениями, но сохранить оригинальные расширения файлов. я для этого передаю файлы convert. например, я пишу в команде "${f%.*}".jpg для имени файла, а как сделать, чтобы вместо jpg сохранялось исходное расширение? просто не очень силен в bash')
сама команда вида: mkdir converted_files; for f in *.jpg *.png; do convert -resize 1000 converted_files/"${f%.*}".jpg; done

upd: нашел решение: ls -1 | xargs -I {} -t convert -resize 1000 {} "converted_{}". с предыдущей командой не особо понял, как заставить работать').
Димма
19.05.2018
14:29
Постоянная ссылка на комментарийПостоянная ссылка на комментарий
+1
войдите, чтобы ставить лайки
А для Виндуса есть?

Написать комментарий

Ваше имя:
Текст комментария:
  • Уважать других.
  • Не ругаться.
  • Без оскорблений.
  • Без грубости.
  • Не переходить на личности.
  • Писать на русском языке.
  • Без политики.
  • Без флуда.
Правила