Недавно столкнулся со следующей проблемой. Нужно было автоматически повернуть на 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 можно открывать терминал сразу в нужной папке.
Комментарии
18:24
18:42
17:28
11:53
сама команда вида: 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_{}". с предыдущей командой не особо понял, как заставить работать').
14:29