Masowa zmiana wymiarów obrazka
Wczoraj chwilkę się męczyłem, aby móc masowo zmienić wymiary dla kilku obrazków. Szukałem, kombinowałem i w końcu przypomniałem sobie, że po Linuksem mam Imagemagick…
Generalnie cały skrypt jest totalnie banalny, ale dla mnie kompletnego n00ba basha to zajęło chwilkę (ok 5 minut ;p), dlatego chcę się podzielić tym mało odkrywczym kodem, oraz z lekka wyjaśnić…
Ci co znają basha to właściwie nie mają po co czytać reszty tej notki
Ok na początek przedstawię od razu jak wygląda całe kodziwo: Ok teraz po kolei… for x in *.jpg – to jest pętla, która listuje wszystkie pliki jpg będące w katalogu. W zmiennej x zostaje zapisana nazwa tego pliku. convert $x -resize 30×30% $x – to oznacza, że plik (którego nazwa jest w zmiennej x) będzie przeskalowany. Jego wymiary będą stanowiłi 30% oryginału. Przeskalowany plik będzie posiadać nazwę “mini_[RESZTA NAZWY ORYGINAŁU].jpg” Tą notkę napisałem tylko dlatego, że być może komuś to się kiedyś przyda. Mi takie rozwiązanie uratowało moje leniwe dupsko, wiem, że to nie jest nic nadzwyczajnego, ale “a nóż widelec” #!/bin/bash
# Copyleft... whatever.. ;p
#
for x in *.jpg
do
convert $x -resize 30x30% "mini_$x"
done
Oczywiście do polecenia convert możemy dać inne parametry, ale to już odsyłam do manuala.
Do czego ci to potrzebne?
Raz robiłem kumplowi prostą galerie na stronę i potrzebowałem zrobić miniaturki kilkunastu zdjęć. Ręcznie mi się tego nie chciało robić ;p
Spoko, u mnie było tego „nieco” więcej :>
wiem, że to nie jest wysokich lotów, ale przeca można to dowoli modyfikować
Wiesz, zanim z bratem do tego doszliśmy, trochę zabawy z photoshopem minęło…
A jest możliwość aby za pomocą skryptu zmienić masowo np. głębię kolorów iluś tam zdjęć w katalogu np. z kolorowego na odcienie szarości?
nie mam pewności, ale myślę, że tak. Musiałbyś przekopać tego manuala w znalezieniu odpowiedniej funkcji, oraz zmodyfikować skrypt (albo napisać nowy
)
O już znalazłem w manualu: zamiast -resize trza dać -monochrome
no widzisz
ImageMagick ma mase opcji. Ja kiedyś napisałem skrpyt, który do zdjęc dokleja datę, w rogu, tak jak to kiedyś robiły aparaty
No i napisałem też mały skrypt, który generuje tak raz-dwa prostą galerię
Chce ktoś?
@Caladan: Jeszcze sie pytasz? No pewnie że chcę
Wrzuć na cpaste.com, wszyscy skorzystają
http://caladan.jogger.pl/2007/03/29/skrypciki-bashowe-a-moze-sie-komus-przyda/
Łapcie. Wrzuciłem na swojego jogga, by mi nie uciekło gdzie je wsadziłem
Ja niedawno stworzyłem analogiczny skrypt który zmniejszał rozmiar(bitrate) plików mp3.
Swoją drogą to na techbloga to się chyba nadaje.
Siergiej, no nie wiem. Technicznie patrząc na to, to może być totalny banał ;-]