Jak automatycznie obracać obrazy na podstawie danych EXIF?

13

Wiem, jak to zrobić ręcznie . Teraz chciałbym zautomatyzować to w oparciu o dane EXIF. Mam już exiftoolzainstalowany, ale wygląda na to, że może tylko odczytać dane, ale nie może obrócić obrazu.

Jest podobne pytanie na SU o Ubuntu . Ale szukam możliwych rozwiązań przy użyciu OSX.

LA_
źródło
Ta odpowiedź na cytowane pytanie wspomina o XnView. W międzyczasie istnieje również XnViewMP, który jest bardzo podobny, ale działa również pod MacOS .
mpy

Odpowiedzi:

6

Możesz użyć nconvert, który jest darmowy (do użytku prywatnego i edukacyjnego) i dostępny dla Win, Linux i Mac .

To narzędzie może bezstratnie obracać obrazy JPEG zgodnie ze znacznikiem orientacji EXIF:

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

To polecenie spowoduje wsadową konwersję wszystkich plików JPEG w bieżącym katalogu i poprzedzanie ich nazw rotated_. Jest to kontrolowane przez -oopcję, sprawdź nconvert -helpwięcej możliwości:

-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
mpy
źródło
Dziękuję, mpy. Gdzie należy umieścić nconvertraz pobrany i rozpakowany (aby był dostępny tylko z nazwy)? Próbowałem przenieść go do aplikacji, ale to nie pomogło.
LA_
@LA_: Do jakiegoś katalogu, który znajduje się w twojej ŚCIEŻCE (sprawdź dane wyjściowe echo $PATH). Pod Linuksem jest zwykle miejsce ~/bin, ale nie mogę nic powiedzieć o OSX, przepraszam. W niektórych okolicznościach musisz wydać rehash(lub uruchomić nowy terminal) po przeniesieniu pliku wykonywalnego do innego katalogu.
mpy
15

Możesz użyć darmowego jhead (który sam używa jpegtran ).

Aby naprawić obraz o nazwie „image.jpg”, po prostu wpisz:

jhead -autorot image.jpg

Aby naprawić wszystkie pliki JPG zawierające dane EXIF ​​w bieżącym folderze, użyj:

jhead -autorot *.jpg

Jeśli po obróceniu ikony miniaturek nie wyświetlają się poprawnie, możesz je odświeżyć poprzez:

  1. Utwórz nowy folder (zachowaj bez nazwy)
  2. Przenieś dotknięte obrazy do folderu
  3. Korzystając z widoku kolumny, przenieś obrazy z powrotem do oryginalnego folderu
  4. Usuń pusty folder bez tytułu
harrymc
źródło
To moja ulubiona - przypomniałem sobie, że jpegtran ma problemy z usuwaniem danych EXIF. Musi mieć przed wysłaniem zdjęć za pośrednictwem poczty e-mail, które będą wyświetlane w przeglądarce Chrome lub innej nieobsługującej orientacji EXIF!
Tomasz Gandor
1

To nie jest rozwiązanie skryptowe. Podoba mi się to, ponieważ pozwala mi zmieniać inne aspekty zdjęć w jednym kroku.

Możliwym prostym rozwiązaniem jest użycie Google Picasa.

Po dodaniu zdjęć wszystkie zdjęcia są automatycznie obracane do wyświetlenia. Jeśli zdjęcie ma zostać automatycznie obrócone w pliku, wystarczy nacisnąć przycisk Zapisz w folderze zdjęć. Spowoduje to zapisanie wszystkich zdjęć w folderze z poprawionym obróceniem. Picasa jest również dostępna dla systemu OS X i działa w systemie Linux pod Wine.

Dee
źródło
Picasa została wycofana przez Google.
Blazemonger,
0

Jeśli chcesz użyć do tego Automatora, możesz po prostu użyć Obróć obrazy (180 stopni) dwa razy w przepływie pracy.

Na przykład używam akcji automatyzacji, która konwertuje wszystkie obrazy do JPEG, obraca je o 360 stopni (z powodu problemu z OP), a następnie skaluje do szerokości 1024 pikseli. Uruchom akcję, wybierz pliki, zysk! :)

Dwight Brown
źródło