Jak obrócić wiele zdjęć cyfrowych o 180 stopni w jednej operacji?

20

Mam kilka tysięcy zdjęć wykonanych za pomocą GoPro odwróconych do góry nogami.

Szukam sposobu, aplikacji, która może obrócić je wszystkie o 180 stopni w jednej operacji.

Patrzyłem na każdą opcję we własnym oprogramowaniu GoPro, ale nie znajduję tego tylko dla zdjęć. Podczas obracania możesz obracać, ale chcę zachować poszczególne obrazy.

Jestem na Windowsie.

Johns-305
źródło
Powiązane i bardzo istotne: Czy obroty „Windows Photo Viewer” są bezstratne?
scottbb
jpegtran jest właściwą drogą. może bezstratnie obracać i / lub przerzucać pliki JPEG oraz łatwo wywoływać je ze skryptu, ponieważ jest to aplikacja CLI.
Nazwa wyświetlana

Odpowiedzi:

31

Polecam dowolnej aplikacji z tej listy w JPEGclub.org , która opracowuje i przechowuje oprogramowanie dla Independent JPEG Group. Mają darmowy fragment kodu, jpegtranktóry może wykonać kilka podstawowych przekształceń (takich jak obrót) bez ponownego kodowania obrazu.

Obracanie obrazów w „naiwny” sposób (renderowanie do bitmapy, zmiana orientacji bitmapy i ponowne zapisywanie) może spowodować zwiększenie liczby artefaktów JPEG - i większe pliki z mniej użytecznymi danymi.

Powyższa lista zawiera oprogramowanie, o którym wiadomo, że robi to „we właściwy sposób”. Inne oprogramowanie może również (być może przy użyciu innej bazy kodu), ale ImageMagick nie jest jednym z nich, niestety. Jednak od sierpnia 2016 r. Istnieje 87 różnych opcji dla wielu różnych platform obliczeniowych, w tym systemu Windows.


Uwaga z komentarzy: OP wykorzystał tę pętlę na podstawie tej odpowiedzi:

FOR %f IN (.\Src\*.*) DO jpegtran.exe -rotate 180 %f .\Rotated\%~nxf

z dobrymi wynikami.

mattdm
źródło
1
Zwróć uwagę, że bezstratny obrót działa tylko wtedy, gdy każdy wymiar każdego obrazu jest wielokrotnością 16 pikseli - 8, jeśli nie zastosowano podpróbkowania barwy. W przeciwnym razie albo nadmiar pikseli zostanie utracony, albo obraz zostanie wypełniony ramką. Na przykład 1080 nie jest wielokrotnością liczby 16!
Gnubie,
2
Popieram zalecenie jpegtran; jeszcze lepiej, jeśli zależy ci na utrzymaniu Orientationspójności miniatury i znacznika EXIF , możesz rozważyć, exiftranktóra z nich jest nieobecna na liście JPEGclub, ale jest bezstratna. Moje polecenie (w Linuksie) to: exiftran -i -1 *.jpglub find . -name '*.jpg' -print0 | xjobs -0 -l 10 exiftran -i -1; będzie to wymagać dostosowania do powłoki Windows.
Toby Speight,
@Toby Dobry dodatek. Wiele (większość?) Wymienionych programów zachowuje i aktualizuje metadane, dlatego polecam jeden z nich zamiast jpegtranbezpośrednio.
mattdm,
Dziękuję Ci! Użyłem jpegtran na Windows. Obrót o 180 jest dokładnie tym, czego potrzebowałem. W pytaniu podałem dokładną komendę wsadową do przyszłego ref.
Johns-305
@ Johns-305 Cieszę się, że mogłem pomóc. W sprawie edycji pytania patrz meta.photo.stackexchange.com/questions/1601/…
mattdm,
9

Możesz użyć ImageMagick z rotateopcją :

convert image.jpg -rotate 180 result.jpg

Powinieneś być w stanie zastosować to polecenie do wielu plików, w zależności od środowiska.

zero
źródło
10
Zauważ jednak, że spowoduje to ponowne zakodowanie JPEG, tracąc jakość.
mattdm
8

W systemie Windows możesz to zrobić bez dodatkowego oprogramowania w DWÓCH operacjach. Wybierz pliki, które chcesz obrócić w Eksploratorze plików, kliknij prawym przyciskiem myszy i dwukrotnie „obróć w prawo” (lub w lewo). Zostanie to wykonane bezstratnie, jeśli obraz na to pozwoli (np. Wymiary nie są „śmieszne”).

Agent_L
źródło
Jakie są „zabawne” wymiary? Dlaczego wymiary zdjęcia zapobiegają bezstratnemu obrotowi?
scottbb
2
Po przeczytaniu Czy obracanie „Windows Photo Viewer” jest bezstratne? , Teraz rozumiem. Oba wymiary muszą być wielokrotnością liczby 8, aby można je było bezstratnie obracać.
scottbb
1
To najlepsza odpowiedź. Dołączyłem do strony, aby to zagłosować.
fi12
5

Możesz użyć xnview w systemie Windows, który ma pewne przetwarzanie w trybie wsadowym, a także, dla prostego obracania obrazów, masz opcję obracania obrazów w oparciu o dane exif.

Wybierz wszystkie obrazy (nawet te poprawnie zorientowane! Będzie wiedział, że są już dobrze zorientowane), „obróć na podstawie exif” i zrobi to (bez ponownego obliczenia jpg, więc bez utraty jakości).

Jak mówią na http://newsgroup.xnview.com/viewtopic.php?t=1420 :

Aby to zrobić, zaznacz wszystkie obrazy i wybierz „Narzędzia> Bezstratne transformacje JPG” (lub listę rozwijaną symbolu „Bezstratne transformacje JPG” na pasku narzędzi). W oknie dialogowym zaznacz przycisk z napisem „EXIF”, a następnie naciśnij przycisk „Idź”. XnView na stałe obróci obrazy w oparciu o flagę orientacyjną EXIF. ”

I następnym razem, jeśli masz wystarczająco dużo gopro, możesz również sprawdzić jego funkcję: https://gopro.com/support/articles/what-is-auto-image-rotation

Olivier Dulac
źródło
Czy GoPro faktycznie zapisuje prawidłowe dane orientacyjne EXIF? Hero4 / Session ma czujnik orientacji, ale nie sądzę, aby którykolwiek ze starszych modeli miał.
vclaw
4

Zakładając, że twoje zdjęcia są w formacie JPEG, jestem raczej stronnikiem JPEGCrops , prostego i darmowego narzędzia do bezstratnego przetwarzania wsadowego obrazów.

Można przycinać do określonych proporcji i / lub obracać.

tys
źródło
4

Czy mogę zasugerować tryb wsadowy Irfanview, który działa tylko w systemie Windows. Irfanview nadaje się również do prostych edycji, ale nie jest to GIMP.

Po zainstalowaniu wybierz „Plik | Konwersja / zmiana nazwy partii”. Stamtąd staje się to nieco trudne, musisz wybrać wszystkie pliki, musisz określić folder docelowy i kliknij przycisk Zaawansowane, aby wyświetlić opcje zaawansowane. Może obracać się o +/- 90 °, ale aby zrobić 180 °, musisz wybrać dokładny obrót po prawej stronie i wprowadzić 180 °. Pamiętaj, że możesz również zmienić ich rozmiar, zmienić jakość JPEG i zmienić ich nazwę.

Możesz to również zrobić dość szybko, pozostając w GUI i używając klawiatury. Otwórz dowolny plik w folderze zdjęć. Naciśnij dwa razy „R”, aby dwukrotnie obrócić. Następnie naciśnij Ctrl-S, aby zapisać. Pojawią się dwa okna, jedno typowe okno dialogowe pliku, a drugie kompresja JPEG (jeśli domyślnym formatem GoPro jest JPEG). Chciałbym upewnić się, że współczynnik jakości wynosi co najmniej 90%. Następnie zapisz plik; powinieneś być w stanie nacisnąć klawisz Tab lub Alt-S, aby zapisać. Może pojawić się okno dialogowe typu „Jesteś pewien” (być może uda się to wyłączyć). Następnie wystarczy nacisnąć klawisz spacji, aby przejść do następnego pliku w folderze. Jeśli masz ponad 50 plików, partia może być szybsza. Dziesięć plików, po prostu robię powyższe.

Kluczową rzeczą dla Irfanview jest to, że jest jak Blender, nie pyta cię, czy chcesz zapisać, jeśli modyfikujesz obraz.

RocketFeathers
źródło
3
Spowoduje to rotację stratną - ponieważ podczas ich obracania, a następnie ponownego zapisywania JPEG, tracisz jakość. W IrfanView lepiej użyć funkcji „Bezstratny obrót JPEG” (Shift + J). Uwaga: możesz użyć widoku miniatur, aby zaznaczyć wszystkie swoje zdjęcia, a następnie obrócić je wszystkie jednocześnie.
vclaw
1
@RocketFeathers - Irfanview to najłatwiejsze narzędzie, dzięki któremu można to zrobić bezstratnie w środowisku Windows. Ale jak mówi Vclaw, o wiele lepiej jest użyć „JPEG Lossless Rotation”, aby to zrobić. Edytuj swoją odpowiedź, aby to odzwierciedlić, a ja ją poprę.
Michael C
„nie pyta, czy chcesz zapisać, jeśli zmodyfikujesz obraz”. - Można to zmienić w Opcje> Właściwości / Ustawienia ...> Poproś o zapisanie zmian przy wyjściu z programu.
MrWhite
3

FSViewer to przydatny program, który może to zrobić.

Otwórz folder, w którym znajdują się obrazy, zaznacz wszystko, co chcesz obrócić, naciśnij F4 i przejdź do zakładki „Konwersja partii” w oknie, które się otworzy. Kliknij „Opcje zaawansowane” w prawym dolnym rogu, przejdź do zakładki „Obróć”. Zaznacz „Odwróć / Obróć”, następnie „Obróć”, następnie wybierz „180” poniżej i naciśnij OK. Ustaw miejsce, w którym chcesz je zapisać, i kliknij „Konwertuj”.

Edycja: szybszym i bardziej bezbolesnym sposobem jest po prostu zaznaczenie wszystkich potrzebnych zdjęć i dwukrotne naciśnięcie przycisku „Obróć w prawo i zapisz” na pasku narzędzi. Powinny być nieniszczące dla plików JPEG.

K. Minkov
źródło
3

W systemie Windows możesz zaznaczyć wszystkie, jeśli są one w Eksploratorze, a następnie kliknij prawym przyciskiem myszy i wybierz obróć zgodnie z ruchem wskazówek zegara. Zrób to dwa razy, a twoje zdjęcia będą teraz prawidłowo zorientowane.

Arjihad
źródło
2

Czy znasz GIMP? Istnieje wtyczka o nazwie BIMP, która pozwala wykonać tę samą operację na zestawie obrazów przy użyciu interfejsu graficznego. Możesz go łatwo zainstalować za pomocą oficjalnego instalatora dla systemu Windows.

Możesz także ponownie zapisać je w innym formacie lub z innym współczynnikiem kompresji, aby uniknąć dużej utraty jakości.

Wskazówka: Zrobiłem to: D

Niespodziewane
źródło
2
Myślę, że chciałeś powiedzieć „Zastrzeżenie” zamiast „Pro tip”: p Ale świetne oprogramowanie! Od czasu do czasu potrzebowałem operacji wsadowych na GIMP i zamiast tego zacząłem pisać kod Matlab. Będę pamiętać o twoim narzędziu następnym razem :)
Tasos Papastylianou
1

ImageMagick to zestaw narzędzi wiersza poleceń, które działają na obrazach, i można je połączyć z podstawowymi poleceniami powłoki systemu Unix, aby zastosować to samo polecenie do zestawu plików. Istnieje wiele dobrych przykładów na temat obracania wszystkich obrazów w katalogu za pomocą imagemagick? .

Caleb
źródło
Um ... a jeśli OP działa w systemie Windows i nie używa Cygwin ...? :) Może chcę dodać „i pliki wsadowe systemu Windows” lub rozszerzyć odpowiedź, aby wskazać, że ImageMagick niekoniecznie jest rozwiązaniem tylko dla UNIX, tylko wierszem poleceń.
inkista
1
Spróbuję dziś po południu. Dostępne są pliki binarne systemu Windows.
Johns-305,
1

Osobiście korzystam z Adobe Lightroom. Obrazy można łatwo obracać i edytować partiami, wystarczy wybrać obrazy, które chcesz obrócić, kliknąć prawym przyciskiem myszy i wybrać opcję transformacji obrazów poprzez obrót o 180 stopni.

Jeśli konsekwentnie pracujesz z tysiącami zdjęć, które wymagają przetwarzania wsadowego, szczególnie jeśli jest to bardziej skomplikowane niż obracanie - jak dostosowanie koloru lub ekspozycji, LR jest prawdopodobnie solidną inwestycją.

Nie podoba mi się, że Lightroom jest zamkniętym źródłem, kosztuje i nie działa na systemach Linux. Przekonałem się jednak, że funkcje znacznie przewyższają dostępne za darmo.

SB Ph.D.
źródło
0

Możesz użyć LiveBlox i zbudować potok, aby umożliwić obrót obrazu. Wersja demo na http://liveblox.org ma blok rotacji, więc pozwoli to zrobić.

Istnieje samouczek https://www.youtube.com/watch?v=kY0e5msQuiU, który pokazuje, jak zmienić rozmiar obrazu wsadowego. Aby wykonać obrót, wystarczy zmienić rozmiar zmiany rozmiaru na rotator.

Umożliwiłoby to pracę nad każdym obrazem za pomocą jednego kliknięcia.

robby987
źródło
-1

$ za F w * jpg; wykonaj konwersję-obróć 180 $ F "$ (basename $ F .jpg) _R.jpg" && echo "Done $ F"; gotowy

Objaśnienie: * dla F w części .jpg polecenia przypisuje nazwę pliku do zmiennej, którą można później przywołać w celu zmiany nazwy pliku na [oryginalna nazwa pliku} _R.jpg

„robić convert -rotate 180” informuje komputer, że chcesz twoje zdjęcia przekształcane, przez istota obrócony o 180 stopni.

Część „$ (basename $ F .jpg) _R.jpg” polecenia wskazuje nazwę nowego pliku.

&& mówi komputer niż dodatkowej komendzie nadchodzi, ale że komputer jest dozwolone jedynie w celu wykonania polecenia, jeśli poprzedni (obracanie i zmiana nazwy) Komenda powiodła się.

echo „Gotowe $ F” mówi komputerowi („echo” do ciebie), że każdy plik został pomyślnie obrócony. Część podrzędna polecenia $ F przywołuje zmienną początkową nazwy pliku, więc dane wyjściowe prawdopodobnie powiedzą coś w stylu „Gotowe plik1.jpg”

I, aby ten kawałek zadziałał, potrzebny jest sh / csh / bash.

bluerizlagirl
źródło
5
To prawdopodobnie działa, ale bez wyjaśnienia nie jest to dobra odpowiedź. Proszę wyjaśnić, w jakim kontekście to rozwiązanie, jeśli dotyczy.
null
1
Czy to rozszerzenie odpowiedzi null za pomocą ImageMagick?
MikeW
To nie działa zgodnie z oczekiwaniami, jeśli *_R.jpgw katalogu są już pliki.
pkt.
Dziękuję za wyjaśnienie, nie jestem pewien, czy instalacja powłoki UNIX w systemie Windows jest praktycznym podejściem, ale jest to podejście nie mniej ważne.
null
pts, możesz zmienić _R.jpg na cokolwiek chcesz (np. „_rotated.jpg”). Masz rację, że będzie to problematyczne, jeśli masz już pliki _R.jpg w katalogu.
SB Ph.D.