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:
#!/bin/bash
# Copyleft... whatever.. ;p
#
for x in *.jpg
do
convert $x -resize 30x30% "mini_$x"
done
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 30x30% $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"
Oczywiście do polecenia convert możemy dać inne parametry, ale to już odsyłam do manuala.
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" :-)
Komentarze
Disclaimer
Jakkolwiek jestem właścicielem tego bloga, nie ponoszę odpowiedzialności za kometarze napisane przez innych obywateli tego wolnego kraju.
Zastrzegam sobie prawo do kasowania/modyfikowania komentarzy (jeśli uznam to za stosowne).
#1
Do czego ci to potrzebne?
Albi | #
#2
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
radmen | #
#3
Spoko, u mnie było tego „nieco” więcej :>
Albi | #
#4
wiem, że to nie jest wysokich lotów, ale przeca można to dowoli modyfikować :P
radmen | #
#5
Wiesz, zanim z bratem do tego doszliśmy, trochę zabawy z photoshopem minęło…
Albi | #
#6
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?
quasi (Mateusz) | #
#7
nie mam pewności, ale myślę, że tak. Musiałbyś przekopać tego manuala w znalezieniu odpowiedniej funkcji, oraz zmodyfikować skrypt (albo napisać nowy :P )
radmen | #
#8
O już znalazłem w manualu: zamiast -resize trza dać -monochrome
quasi (Mateusz) | #
#9
no widzisz :)
radmen | #
#10
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 :D
No i napisałem też mały skrypt, który generuje tak raz-dwa prostą galerię :D
Chce ktoś? :D
Caladan | #
#11
@Caladan: Jeszcze sie pytasz? No pewnie że chcę :D
quasi | #
#12
Wrzuć na cpaste.com, wszyscy skorzystają ;)
Albi | #
#13
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 :D
Caladan | #
#14
Ja niedawno stworzyłem analogiczny skrypt który zmniejszał rozmiar(bitrate) plików mp3.
Swoją drogą to na techbloga to się chyba nadaje.
Siergiej | #
#15
Siergiej, no nie wiem. Technicznie patrząc na to, to może być totalny banał ;-]
radmen | #