Portál AbcLinuxu, 6. května 2025 16:28

Hromadné zmenšení fotek

11.8.2009 12:08 | Přečteno: 3946× | Linux

Nedávno jsem potřeboval zmenšit velké množství fotek tak jsem za vydatné pomoci zplodil jednoduchý skriptík.

Situaci komplikoval fakt, že fotky měly různou velikost a umístěny byly v poměrně složité adresářové struktuře.
Použil jsem utility z balíku imagemagick, find...
#!/bin/bash
find . -iname '*.jpg' -type f  | while read F
do
if [ `identify -format "%[fx:w]" "$F"` = "2592" ]
then
convert -resize 1024x768 "$F" "${F}.50"
fi
done


Jedná se vlastně o jednoduchý cyklus s jednou testovací podmínkou.

Na zjištění šířky obrázku jsem používal příkaz identify s5005379.jpg | awk '{print $3}' | sed s#x1944##g , který je však trochu těžkopádný a v případě, že název fotky obsahuje mezeru ani nefunguje. Příkaz identify -format "%[fx:w]" zjišťuje šířku obrázku efektivněji. Pokud je 2592 px spustí se příkaz convert -resize 1024x768, který fotku zmenší na požadovanou velikost.

Skript moc neošetřuje (v mé situaci to nebylo třeba) zdali je výška fotky 1944 px aby nedocházelo k deformaci obrázků.
Utilita identify je poměrně pomalá a syntakci jsem poměrně težce hledal.        

Hodnocení: 71 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

Jan Drábek avatar 11.8.2009 12:51 Jan Drábek | skóre: 41 | blog: Tartar | Brno
Rozbalit Rozbalit vše Re: Hromadné zmenšení fotek
Odpovědět | Sbalit | Link | Blokovat | Admin

Hezké, ale asi bych použil DBP  umí toho víc, a má ošetřenou i deformaci obrázků.

Btw. správně se píše syntaxe.

01010010 01000101 01010000 01101100 01001001 00110010 01000100 01100101 01010110
11.8.2009 12:58 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Hromadné zmenšení fotek
Odpovědět | Sbalit | Link | Blokovat | Admin
Přinejmenším je dobré po zmenšení fotku mírně doostřit. Ale ono to celé vypadá jako skript sloužící k tomu, že se někam vysype obsah karty a skriptem se z něj (bez výběru, bez ořezu, bez úprav) vyrobí webové album nebo prezentace, takže tam na tom asi nesejde.
xsubway avatar 11.8.2009 15:17 xsubway | skóre: 13 | blog: litera_scripta_manet
Rozbalit Rozbalit vše místo convert
Odpovědět | Sbalit | Link | Blokovat | Admin

používám mogrify ... ale pozor: výsledek nahradí původní obrázek!

Používám to hlavně na změnu všech obrázků v adresáři, např.:

mogrify -resize 640 ./*.jpg

11.8.2009 15:30 Michal
Rozbalit Rozbalit vše Re: Hromadné zmenšení fotek
Odpovědět | Sbalit | Link | Blokovat | Admin

convert umi take jen jeden rozmer, napr. 'convert -resize x1024 soubor', pak to zajisti vzdy stejny jeden rozmer a obrazky (resp. pomer jejich stran) to nijak nedeformuje.

11.8.2009 15:51 Mortal | skóre: 26 | blog: mortals_log
Rozbalit Rozbalit vše Re: Hromadné zmenšení fotek
convert zachovava pomer stran vzdy, pri zmensovani fotky 128x256 na rozmer 64x64 bude vysledek 32x64
aby doslo k deformaci musi se pridat vykricnik:
convert -resize 64x64\!
V pekle jsou samé diskety a ďábel je velká disketová mechanika
11.8.2009 15:47 Tomáš Pěnička
Rozbalit Rozbalit vše Re: Hromadné zmenšení fotek
Odpovědět | Sbalit | Link | Blokovat | Admin
U convert se dá nastavit, aby to zmenšovalo, jenom pokud je obrázek větší, než zadané rozměry. Z hlavy nevím, který je to parametr, ale myslím, že to je něco u té velikosti (většítko nebo menšítko)
11.8.2009 15:57 Mortal | skóre: 26 | blog: mortals_log
Rozbalit Rozbalit vše Re: Hromadné zmenšení fotek
pri pouziti > dojde ke zmene velikosti jen pokud specifikovana vyska nebo sirka je mensi, tedy dojde ke zmenseni nebo se obrazek upravovat nebude
pri pouziti < dojde ke zvetseni pouze pokud oba rozmery jsou vetsi nez aktualni velikost obrazku, jinak se velikost obrazku nezmeni
V pekle jsou samé diskety a ďábel je velká disketová mechanika
11.8.2009 17:06 aurelius | blog: Wonderland
Rozbalit Rozbalit vše Re: Hromadné zmenšení fotek
Odpovědět | Sbalit | Link | Blokovat | Admin

Mně se osvědčil jednoduchý nautilus-image-converter. Myslím, že pro BFU nejlepší volba.

11.8.2009 17:37 Uran | skóre: 9 | blog: uranit
Rozbalit Rozbalit vše Re: Hromadné zmenšení fotek

A umi rekurzivne prohazet slozky?

11.8.2009 19:40 aurelius | blog: Wonderland
Rozbalit Rozbalit vše Re: Hromadné zmenšení fotek

Neumí. Musíte vybrat konkrétní fotky, které chcete zmenšit. Na druhou stranu je to jednoduché a hlavně rychlé.

11.8.2009 20:04 Uran | skóre: 9 | blog: uranit
Rozbalit Rozbalit vše Re: Hromadné zmenšení fotek

jasny ale mym cilem bylo "preresizeovat" x fotek ve slozite adreasrove strukture takze ten find a bash byl nutny .)

10.7.2015 14:32 kesik
Rozbalit Rozbalit vše Re: Hromadné zmenšení fotek
Odpovědět | Sbalit | Link | Blokovat | Admin
Hromadně lze fotky zmenšit i na Zmenšení fotek a to plně online

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.