In questo articolo ti illustrerò come ridimensionare e modificare in maniera semplice e rapida le immagini con l’ utilizzo del terminale Linux usando il caro amato ImageMagick. ImageMagick è un software da riga di comando che permette di effettuare le operazioni più comuni su un immagine, come la conversione, l’ applicazione di filtri, il ridimensionamento e l’ eliminazione dello sfondo, molto utile nella preparazione d’immagini destinati a siti ecommerce.

Installazione

ImageMagick solitamente non è installato di default nelle distribuzioni Linux. Per installare il software su Debian, Ubuntu e derivate basta usare il comando:

sudo apt-get install imagemagick

Convertire le immagini in altri formati.

Per le operazioni che eseguite, in questo articolo userò il comando convert di ImageMagick. Convert prende l’ immagine, esegue le azioni e salva una nuova immagine modificata con il nome che abbiamo scelto. Una delle cose più semplici è la conversione delle immagini, questo comando prende un’ immagine png e la converte nel formato jpg nella directory corrente

convert test_image.png test_image.jpg

Puoi anche specificare un livello di compressione per le immagini con il parametro -quality

convert test_image.png -quality 80 test_image.jpg

Il numero deve essere compreso da 1 a 100. ImageMagick imposta il valore di compressione usando il numero dato in input, in caso contrario imposta il valore di compressione di default a 92.

Ridimensionamento delle immagini.

Il comando convert può anche ridimensionare in modo semplice e veloce un’ immagine

convert test_image.jpg -resize 200x150 test_image.jpg

Il comando convert ridimensiona l’ immagine cercando di preservare le proporzioni adattando l’ immagine a un’ area di 200×150 ma l’ immagine ottenuta potrebbe non essere esattamente quella scelta, a causa della gestione delle proporzioni di ImageMagick. Se vuoi ridimensionare un’ immagine a una dimensione prestabilita senza essere influenzata dalle proporzioni puoi forzare il comando posponendo alla dimensione un punto esclamativo, in questo modo

convert test_image.jpg -resize 200x150! test_image.jpg

Puoi anche indicare una larghezza o un’ altezza specifica. ImageMagick ridimensionerà l’ immagine alla grandezza indicata mantenendo le proporzioni. Questo comando imposta una larghezza dell’ immagine pari a 100

convert test_image.jpg -resize 100 test_image.jpg

Mentre, questo comando, ridimensiona l’ immagine ad un’ altezza di 100

convert test_image.jpg -resize x100 test_image.jpg

Rotazione di un’ immagine

ImageMagick può anche ruotare rapidamente un’ immagine, questo comando prende test_image.jpg la ruota di 90 gradi e la salva come test_image.jpg

convert test_image.jpg -rotate 90 test_image.jpg

Se hai indicato lo stesso nome di file ImageMagick salverà l’ immagine ruotata sull’ immagine originale.

Eliminazione dello sfondo.

Il comando convert di ImageMagick… udite, udite… può anche facilmente eliminare uno sfondo uniforme dall’ immagine e, insieme al comando di conversione, ottenere senza troppi sforzi una meravigliosa PNG dallo sfondo trasparente senza scomodare software quali Photoshop, Gimp, etc..

convert test_image.jpg -fuzz 10% -transparent white test_image.png

Il comando permette di eliminare lo sfondo bianco e ottenere una png trasparente. L’ opzione -fuzz permette di stabilire una percentuale che indica la distanza del colore definito ( bianco nell’ esempio ), tutti i colori all’ interno di questa distanza sono ritenuti uguali. In termini pratici, se, ad operazione eseguita, noti che c’ e’ ancora il colore che intendi eliminare all’ interno dell’ immagine, aumenti questa percentuale, altrimenti la diminuisci.

Combinazione e operazioni in batch

Puoi utilizzare tutte le operazioni viste finora in combinazione, ad esempio ridimensionamento e rotazione

convert test_image.jpg -resize 200x150 -rotate 90 test_image.jpg

Puoi effettuare operazioni anche su un’ intera cartella. Il seguente codice elimina lo sfondo e converte nel formato png tutte le immagini presenti nella cartella indicata

convert /path_folder/*.jpg -fuzz 10% -transparent white /path_folder/*.png

Se vuoi conservare il nome originale, ImageMagick può farlo, basta che usi il comando convert con l’ opzione -set filename in questo modo:

convert /path_folder/*.jpg -set filename:base "%[base]" -fuzz 10% -transparent white /path_folder/"%[filename:base].png"

Conclusione

Questo articolo ha voluto introdurti all’ uso di ImageMagick e su come sia possibile effettuare le operazioni più comuni sulle immagini. Questo fantastico strumento permette di fare tante altre cose, ti consiglio di dare uno sguardo al sito del progetto ImageMagick.

Spero che questo articolo ti sia stato utile, se hai domande o vuoi che parli di un argomento in particolare, chiedi pure, sarò lieto di accontentarti.