Ridimensionare immagini da shell

Alcuni appunti per ricordarmi come ridimensionare  un gruppo di immagini da shell:

Prerequisito fondamentale è installare il pacchetto imagemagick.

Ridimensiona le immagini in larghezza mantenendo la proporzione:

for i in *.jpg; do convert -geometry 800x $i thumb-$i; done

Ridimensiona le immagini in altezza mantenendo la proporzione:

for i in *.jpg; do convert -geometry x600 $i thumb-$i; done

Ridimensiona le immagini sia larghezza che in altezza:

for i in *.jpg; do convert -geometry 800x600 $i thumb-$i; done

Ridimensionare immagini automaticamente con un batch e ImageMagick

Spesso capita di dover compiere azioni noiose e ripetitive su delle immagini, come ad esempio ridimensionarle o salvarle in formati diversi da quello originale. Queste operazioni possono richiedere moltissimo tempo, soprattutto se abbiamo a che fare con una grande quantità di immagini.

Per chi usa Linux è disponibile però l’utility ImageMagick, che unita ad un pizzico di script in bash ci permette di risolvere agevolmente il problema.

Per prima cosa è necessario installare il tool sulla propria distribuzione. Su Ubuntu (o in qualsiasi altra distribuzione basata su Debian) procedere nella seguente maniera:

sudo apt-get install imagemagick

A questo punto basta posizionarsi nella cartella dove si trovano le immagini (vi consiglio di crearvi una copia a parte delle immagini da modificare, visto che lo script andra’ a lavorare direttamente su quelle originali) ed eseguire un comando come questo:

find ./ -iname '*.JPG' -exec convert '{}' -resize '1024' '{}' \;

Questo comando convertirà tutte le immagini .JPG che trova in un formato di 1024 pixel di larghezza, mantenendo ovviamente le proporzioni dell’immagine originale.