Jak obrócić zestaw zdjęć z linii poleceń?


17

Mam duży zestaw zdjęć JPEG o tej samej rozdzielczości. Otwarcie każdego z nich w interfejsie graficznym imagemagic lub gimp trwałoby zbyt długo.

Jak mogę obrócić każde zdjęcie i zapisać je pod tą samą nazwą pliku?


3
Zobacz tutaj . Uważaj jednak, że ponowne kodowanie JPEG jest generalnie stratne.
Satō Katsura

Odpowiedzi:


22

Możesz użyć convertpolecenia:

 convert input.jpg -rotate -degrees out.jpg

na przykład:

convert input.jpg -rotate -180 out.jpg

Zapisz go pod tą samą nazwą:

convert file.jpg -rotate -180 file.jpg

Obróć wszystkie pliki:

for photo in *.jpg ; do convert $photo -rotate 90 $photo ; done

Edytować

Możesz użyć mogrifynarzędzi wiersza polecenia (najlepsze narzędzie) zalecanych przez @ don-crissti

mogrify -rotate 90 *.jpg

1
dzięki, jak powiedzieć komendzie, że nazwa pliku po lewej stronie -rotate -180 musi być taka sama jak po prawej, jeśli jest wiele plików?
rekinant

Obracanie pliku o 180 stopni zawsze daje ten sam wynik, bez względu na to, czy obrócisz go w lewo czy w prawo.
djsmiley2k TMW

@ GAD3R 360 stopni spowoduje później powstanie tego samego obrazu. Obracanie obrazu w lewo lub w prawo o 180 stopni, przy czym oba dają ten sam obraz (ale do góry nogami).
djsmiley2k TMW

2
$CAPITAL_NAMESnależy pozostawić zmiennym środowiskowym; do zmiennych lokalnych w skryptach powłoki lub poleceniach użyj$normal_lowercase
cat

2
convertponownie koduje JPEG i dlatego jest stratny. Lepsze wykorzystaniejpegtran
imz - Ivan Zachharyaschev

16

W przypadku obrazów JPEG i obrotu pod kątem prostym użyj jpegtranlub exiftran, ponieważ mogą one obracać obrazy bezstratnie.

for f in *.jpg ; do 
    jpegtran -rotate 180 "$f" > "${f%.jpg}-rotated.jpg"
done

Lub obrócić w miejscu:

for f in *.jpg ; do
    jpegtran -rotate 180 -outfile "$f" "$f"
done

exiftranma również -aflagę do automatycznego obracania obrazu na podstawie tego, co mówi znacznik orientacji EXIF.


Do obrotu w lewo (kąt lewy) za pomocą jpegtran, użyj -rotate 270i przy użyciu exiftran użyj -2flagi zgodnie z instrukcją.
Timo,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.