Portál AbcLinuxu, 6. května 2025 16:28
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.#!/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
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.
Tiskni
Sdílej:
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.
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
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.
Mně se osvědčil jednoduchý nautilus-image-converter. Myslím, že pro BFU nejlepší volba.
A umi rekurzivne prohazet slozky?
Neumí. Musíte vybrat konkrétní fotky, které chcete zmenšit. Na druhou stranu je to jednoduché a hlavně rychlé.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.