Nowe posty

Autor Wątek: Edycja wielu zdjęć naraz za pomocą terminala  (Przeczytany 5423 razy)

loploplop

  • Gość
Edycja wielu zdjęć naraz za pomocą terminala
« dnia: 2011-09-18, 12:08:15 »
Witam,
mam nadzieję że to odpowiedni dział bo mam pilny problem z terminalem :)
używam Linuksa od jakiegoś miesiąca i potrzebuję przerobić wiele zdjęć które później będą użyte w filmie. Szukałam różnych programów do edycji wielu zdjęć naraz aż znalazłam informację że można to zrobić za pomocą terminala.
Najpierw chciałam pomniejszyć obrazy z jednej z sekwencji. Obrazy do każdej sekwencji są w osobnych folderach. Żeby skalowanie było proporcjonalne, podzieliłam rozmiar oryginalnego zdjęcia na cztery i przeskalowałam pierwsze w Gimpie.
To są wymiary oryginału:
Szerokość: 2592 Wysokość: 3872
Pomniejszone razy cztery:
Szerokość: 648 Wysokość: 968
Docelowo zdjęcia powinny mieć wysokość 480 bo film będzie w formacie 720x480, ale nie wiem jak napisać polecenie zmiany tylko wysokości i dopasowania szerokości proporcjonalnie, więc żeby uniknąć zniekształceń oddzieliłam pionowe zdjęcia od poziomych w różnych folderach.
W tutorialu znalazłam polecenie: ls -1 które ma pokazywać szczegółowe info o plikach w folderze, ale u mnie wyświetla tylko listę plików (zamiast wyświetlać je w linii), więc nie wiem jak sprawdzić czy wszystkie zdjęcia w folderze mają te same wymiary.
Po zmniejszeniu zdjęć chcę je przyciąć do docelowego formatu (jeszcze nie wiem jak to zrobić).
W terminalu napisałam tak:
mogrify -convert -size 648x968 *.jpg -resize 648x968
I odpowiedź była:
mogrify: unrecognized option `-convert' @ error/mogrify.c/MogrifyImageCommand/4560.

Co jest źle?

Edit - działa :) po usunięciu "convert". Teraz tylko nie wiem jak zapytać terminal o wymiary zdjęć w folderze :)

mariuszadamski

  • Gość
Edycja wielu zdjęć naraz za pomocą terminala
« Odpowiedź #1 dnia: 2011-09-18, 15:30:37 »
Cytat: loploplop
Teraz tylko nie wiem jak zapytać terminal o wymiary zdjęć w folderze :)
Można do tego użyć polecenia 'identify' z pakiety ImageMagick (zakładam, że masz bo mogrify jest również jego składnikiem). Domyślnie identify zwraca więcej informacji niż trzeba; jeśli potrzebujesz tylko rozmiaru:
identify * | awk '{print $1 " " $3}'

ra-v

  • Gość
Edycja wielu zdjęć naraz za pomocą terminala
« Odpowiedź #2 dnia: 2011-09-18, 23:34:06 »
Cytuj
Docelowo zdjęcia powinny mieć wysokość 480 bo film będzie w formacie 720x480, ale nie wiem jak napisać polecenie zmiany tylko wysokości i dopasowania szerokości proporcjonalnie, (...)
mogrify -scale x480 *.jpg
?

Offline ultr

  • Users
  • Guru
  • *****
  • Wiadomości: 1177
    • Zobacz profil
Edycja wielu zdjęć naraz za pomocą terminala
« Odpowiedź #3 dnia: 2011-09-19, 00:27:16 »
ImageMagick:
$ mkdir zmniejszone
$ for plik in *.jpg; do convert -resize 720x480 "$plik" "zmniejszone/$plik"; done
Wielkość liter rozszerzenia ma znaczenie.

loploplop

  • Gość
Edycja wielu zdjęć naraz za pomocą terminala
« Odpowiedź #4 dnia: 2011-09-19, 08:15:43 »
Dzięki :) ostatecznie udało mi się przeskalować, sprawdzić nowe rozmiary i zmienić nazwy, tylko do tego ostatniego musiałam zainstalować Thunara. Ale to i lepiej, bo pozwala łatwo zmienić kolejność plików przed zmianą nazwy.
Skalowanie:

mogrify -resize 800x600 *.jpg

Sprawdzanie wielkości przeskalowanych zdjęć:

identify *.jpg

Do tego OpenShot Video Editor który te zdjęcia potrafi zaimportować jako sekwencje :)

  • Gość
Edycja wielu zdjęć naraz za pomocą terminala
« Odpowiedź #5 dnia: 2011-09-19, 11:30:14 »
Cytat: ultr
$ for plik in *.jpg; do convert -resize 720x480 "$plik" "zmniejszone/$plik"; done
Można:
convert "$plik" -resize x480 zmniejszone/"$plik"
convert ustawi wysokość na 480 pikseli a szerokość dobierze proporcjonalnie. Czyli zrobi to, co chciał OP.
(Gwoli ścisłości: gdyby dać resize 480 (bez tego "x" przed liczbą), convert ustaliłby szerokość na 480 pikseli a wysokość dobrał proporcjonalnie.)