Užduotis: kokybiškai ir greitai sumažinti katalogą nuotraukų. Tam parašiau labai paprastą programėlę, veikiančią Bash aplinkoje (Linux only). Ji mažina visas kataloge esančias JPG (!) formato nuotraukas pagal jūsų nurodymą, naudodama imagemagick paketo programą convert; sukelia į katalogą “sumazintos” ir, vartotojui panorėjus, visas jas suarchyvuoja. Archyvavimui pasirinkau senąjį ZIP, nes RAR Gmail mėgsta nepraleisti, o kitų tipų mylimi Windows vartotojai gali negalėti/nemokėti/nenorėt išarchyvuoti. Kodas:
#!/bin/bash
echo Sumazintu nuotrauku dydis:
read SIZE;
if [ ! -d ./sumazintos ]; then mkdir ./sumazintos; fi;
for f in *.jpg;
do
echo Mazinama nuotrauka $f…;
convert -size “$SIZE” -resize “$SIZE” $f ./sumazintos/$f;
done
echo ———————-;
echo Nuotraukos sumazintos!;
echo;
echo “Ar norite suarchyvuoti nuotraukas? (y/n)”;
read ARC;
if [ "$ARC" = "y" ]; then
zip -r ./sumazintos/sumazintos.zip ./sumazintos/*.jpg;
fi
“Instaliavimas”: nukopijuokite pateiktos programos kodą į failą, kurį galite pavadinti kaip jums patogiau (pvz.: resize_images_folder). Suteikite failui vykdymo atributą (chmod +x failo_pavadinimas) ir perkelkite kur patogu, pavyzdžiui į /usr/bin ar /bin. Be abejo, turi būti instaliuotas imagemagick.
Naudojimas: komandinėje eilutėje (bash) nueikite į katalogą, kuriame guli visos norimos sumažinti nuotraukos. Įvedate aukščiau minėto sukurto failo pavadinimą (jau šiuo atveju komandą), programa jūsų paklaus iki kokio dydžio norite mažinti nuotraukas (pvz.: 500×375) ir ar jas suarchyvuoti. Kaip minėjau, visos nuotraukos ir archyvas bus kataloge “sumazintos”.
Modifikuokite ir naudokite pagal savo poreikius.
P.S.: Klaipėdos miesto (ar regiono?) informatikos olimpiadoje užėmiau 9-tą vietą (iš 40+ dalyvių). Kaip visai neprogramuojančiam pascal’iu, manau visai garbingai ir neblogai :-)


1 nuomonė
Įrašo komentarų RSS Grįžtamasis adresassveikinu! ;]
smagi programele, manau man pravers savaitgali;] ir seip labiau susipazystant su bash ;]
Tavo nuomonė: