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 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”
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” :-)

15 Responses to “Masowa zmiana wymiarów obrazka”

  1. Albi March 29, 2007 at 9:33 pm #

    Do czego ci to potrzebne?

  2. radmen March 29, 2007 at 9:33 pm #

    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

  3. Albi March 29, 2007 at 9:33 pm #

    Spoko, u mnie było tego „nieco” więcej :>

  4. radmen March 29, 2007 at 9:33 pm #

    wiem, że to nie jest wysokich lotów, ale przeca można to dowoli modyfikować :P

  5. Albi March 29, 2007 at 9:33 pm #

    Wiesz, zanim z bratem do tego doszliśmy, trochę zabawy z photoshopem minęło…

  6. quasi (Mateusz) March 29, 2007 at 9:33 pm #

    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?

  7. radmen March 29, 2007 at 9:33 pm #

    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 )

  8. quasi (Mateusz) March 29, 2007 at 9:33 pm #

    O już znalazłem w manualu: zamiast -resize trza dać -monochrome

  9. radmen March 29, 2007 at 9:33 pm #

    no widzisz :)

  10. Caladan March 29, 2007 at 9:33 pm #

    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

  11. quasi March 29, 2007 at 9:33 pm #

    @Caladan: Jeszcze sie pytasz? No pewnie że chcę :D

  12. Albi March 29, 2007 at 9:33 pm #

    Wrzuć na cpaste.com, wszyscy skorzystają ;)

  13. Caladan March 29, 2007 at 9:33 pm #

    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

  14. Siergiej March 29, 2007 at 9:33 pm #

    Ja niedawno stworzyłem analogiczny skrypt który zmniejszał rozmiar(bitrate) plików mp3.
    Swoją drogą to na techbloga to się chyba nadaje.

  15. radmen March 29, 2007 at 9:33 pm #

    Siergiej, no nie wiem. Technicznie patrząc na to, to może być totalny banał ;-]