Modificare le immagini con ImageMagick

Informazioni sull’ immagine

Per ottenere le informazioni relative alle dimensioni dell’immagine

identify [nome del file]

Si sa che dall’avvento delle fotocamere digitali tutti noi siamo diventati dei provetti fotografi e per dimostrare ciò non manca mai l’occasione per scattare decine e decine di fotografie “Tanto poi se non mi piacciono le cancello!”. Ci si ritrova così con il computer pieno zeppo di fotografie, magari ad alta risoluzione, che occupano molto spazio.

Grazie alla crescente popolarità dei Social Network tipo Facebook o MySpace è prassi condividere le proprie fotografie con parenti e amici. Per agevolare il caricamento delle fotografie sul web è opportuno ridimensionarle in modo da renderle più leggere e facilmente gestibili.

Prassi normale

Ok, ma come faccio per modificare le immagini?
Normalmente apro un programma di fotoritocco tipo PhotoShop o l’ottimo GIMP e ridimensiono le immagini una alla volta. Questo metodo va benissimo, ma cosa succede se ho 50, 100 o anche più fotografie? Sicuramente impiegherei non meno di qualche ora per terminare il compito.

Un metodo più veloce

Siccome di natura sono un po’ pigro, la soluzione che adotto normalmente è l’utilizzo della suite ImageMagick che è una serie di tool a riga di comando, disponibile per tutte le distribuzioni GNU/Linux, Windows e Mac OS X. Per l’installazione su GNU/Linux utilizzate il vostro gestore di pacchetti preferito (apt-get, Synaptic, YaST…) mentre per installarlo su Windows o Mac OS X il sito da cui scaricarlo è http://www.imagemagick.org.

Vediamo ora due dei comandi maggiormente utilizzati, ovvero convert e mogrify.

Convert

Questo comando “converte” l’immagine di partenza e salva le modifiche in un nuovo file; l’immagine originale non viene alterata.

Ad esempio, per ridimensionare l’immagine originale.jpg da 2560×1920 pixel a 1000 pixel di larghezza mantenendo le proporzioni e salvarla nel nuovo file modificata.jpg digitate nel terminale:

convert -geometry 1000x originale.jpg modificata.jpg

nel giro di uno o due secondi l’immagine è modificata e salvata. Semplice vero?

Per ridimensionare 100 immagini a 1000 pixel di larghezza presenti nella cartella di lavoro basta digitare nel terminale (tutto in una sola riga, mi raccomando):

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

ovviamente questo comando funziona anche con le percentuali, ma in questo caso bisogna usare l’opzione -scale al posto di -geometry:

for i in *.jpg; do convert -scale 50% $i thumb-$i; done

Il comando convert permette di convertire immagini in diversi formati, ad esempio per convertire originale.jpg in orginale.png:

convert originale.jpg originale.png

Mogrify

Il comando mogrify agisce sostanzialmente come convert con l’importante differenza che sovrascrive l’immagine originale. Se si desidera mantenere una copia dell’immagine originale è opportuno effettuare un backup.

I comandi precedenti possono essere riscritti nel seguente modo:

mogrify -geometry 1000x originale.jpg

Il comando seguente ridimensiona tutte le immagini con estensione .jpg presenti nella cartella:

mogrify -geometry 1000x *.jpg

oppure

mogrify -scale 50% *.jpg

Comodo vero?
Bene, per questa volta abbiamo terminato ma torneremo presto sull’argomento ImageMagick perchè utilizzato in uno script Bash ci permette di ottenere dei risultati interessanti.