Как автоматически поворачивать изображения на основе данных EXIF?

8032
LA_

Я знаю, как это сделать вручную . Теперь я хотел бы автоматизировать это на основе данных EXIF. Я уже exiftoolустановил, но, похоже, он может только читать данные, но не может повернуть изображение.

Есть похожий вопрос по SU по поводу Ubuntu . Но я ищу возможные решения с использованием OSX.

10
[Этот ответ] (http://superuser.com/a/36653/195224) на ваш цитируемый вопрос упоминает XnView. В то же время существует также XnViewMP, который очень похож, но работает и под [MacOS] (http://www.xnview.com/en/xnviewmp/#downloads). mpy 10 лет назад 0

4 ответа на вопрос

12
harrymc

You may use the free jhead (which itself uses jpegtran).

To fix a picture named "image.jpg" just type :

jhead -autorot image.jpg 

To fix all JPGs having EXIF data in the current folder use :

jhead -autorot *.jpg 

If once rotated the thumbnail icons do not show correctly, you could refresh them by :

  1. Create a new folder (keep the untitled name)
  2. Move the affected images into the folder
  3. Using Column View, move the images back into the original folder
  4. Delete the empty untitled folder
Это мой любимый - я вспомнил, что у jpegtran были некоторые проблемы с извлечением данных EXIF. Необходимо иметь перед отправкой изображений по электронной почте, которые будут просматриваться в Chrome или другом браузере, не учитывая ориентацию EXIF! Tomasz Gandor 10 лет назад 0
5
mpy

You can use nconvert, which is freeware (for private and educational use) and available for Win, Linux and Mac.

This tool can rotate JPEG images lossless according to the EXIF orientation tag:

nconvert -jpegtrans exif -o 'rotated_%.jpg' *.jpg 

That command will batch convert all JPEG files in the current directory and prepending their names with rotated_. This is controlled by the -o option, refer to nconvert -help for more possibilities:

-o filename : Output filename Use # to specify position of numeric enumerator Use % to specify source filename Use $ to specify full source pathname Use $$ to specify source folder name 
Спасибо, Мпи. Где мне разместить `nconvert` после загрузки и распаковки (чтобы он был доступен только по имени)? Я пытался переместить его в приложения, но это не помогло. LA_ 10 лет назад 0
@LA_: В какой-то каталог, который находится в вашем PATH (проверьте вывод `echo $ PATH`). Под linux обычным местом является `~ / bin`, но я ничего не могу сказать об OSX, извините. При некоторых обстоятельствах вы должны выполнить `rehash` (или запустить новый терминал) после перемещения исполняемого файла в другой каталог. mpy 10 лет назад 0
1
Dee

This is not a scripted solution. I like this way as it allows me to change another aspects of the photos in one step.

Possible simple solution is to use Google Picasa.

After adding pictures in, all photos are autorotated for displaying. If the picture should be autorotated in the file, it is enough to push the save button on the picture folder. This will save all pictures in the folder with corrected rotation. Picasa is available for OS X as well and runs in Linux under Wine.

Picasa больше не поддерживается Google. Blazemonger 8 лет назад 0
0
Dwight Brown

Если вы хотите использовать Automator для этого, вы можете просто использовать Rotate Images (180deg) дважды в рабочем процессе.

Например, я использую действие automator, которое преобразует все изображения в JPEG, поворачивает их на 360 градусов (из-за проблемы ОП), а затем масштабирует их до 1024 пикселей в ширину. Запустите действие, выберите файлы, прибыль! :)