Ridimensionare molte immagini con Gnu/Linux e ImageMagick da linea di comando

Recentemente ho avuto la necessità di ridimensionare molte immagini tenendo conto del fatto che avevo bisogno di specificare una dimensione, nel mio caso la larghezza, mantenendo il rapporto di grandezza con l’altra dimensione in automatico.
Ho pensato che la soluzione migliore era di usare ImageMagick (convert, mogrify) quindi mi sono messo alla ricerca di informazioni sulle opzioni disponibili da usare per ottenere ciò di cui avevo bisogno.
Ho trovato questo breve articolo “Tip : Batch resize images on Ubuntu Linux” utilissimo sul sito Baptiste Wicht di cui ripropongo una traduzione/rivisitazione, che risolveva la mia necessità.

In Linux c’è uno strumento molto potente per automatizzare l’elaborazione delle immagini da linea di comando. Si chiama ImageMagick per farlo. Sicuramente ci sono un sacco di altri pacchetti/utilità che fanno la stessa cosa, ma questo è il primo che ho trovato e funziona bene.

Quindi, in primo luogo, è necessario installare ImageMagick, se già non lo si ha a disposizione:

sudo apt-get install imagemagick

E poi è possibile ridimensionare tutte le immagini, in questo caso jpg, ad una larghezza di 640px, nell’esempio, della cartella corrente utilizzando il comando:

mogrify -resize 640 *.jpg

Se si desidera ridimensionare specificando l’altezza, è sufficiente aggiungere una x:

mogrify -resize X640 *.jpg

È inoltre possibile specificare larghezza e altezza massime, che può essere utile se si dispone di grandi immagini e non si desidera una larghezza maggiore di x e una altezza maggiore di y, ma non si desidera ridimensionare le immagini più piccole di quella dimensione nella stessa cartella.
Ecco un esempio il ridimensionamento delle immagini se la larghezza è maggiore a 1280 o altezza superiore a 1024:

mogrify -resize ‘1280X1024>’ *.jpg

Con i comandi che abbiamo visto sopra il rapporto tra le dimensioni è conservato.

Se non interessa la distorsione dell’immagine semplicemente con questo comando:

mogrify -resize ’20X20!’ *.jpg

tutte le immagini saranno ridimensionate 20 x 20 pixel, grazie al punto esclamativo mogrify non tenterà di preservare le proporzioni.

Se volete maggiori informazioni sulle possibili opzioni di ridimensionamento, è possibile consultare la documentazione di ImageMagick.

4 pensieri su “Ridimensionare molte immagini con Gnu/Linux e ImageMagick da linea di comando

  1. Salvatore

    Grazie per il post, utilissimo. Sono riuscito velocemente a ridimensionare una cartella intera di immagini… ora però ho un’esigenza in più: vorrei ridimensionare una cartella di immagini forzando le dimensioni, mi spiego meglio, le immagini in questione sono tutte o quasi rettangolari, ed io vorrei ridimensionarle in piccoli francobolli quadrati specificando le dimensioni sia di larghezza che di altezza, e la dove serve l’immagine si dovrebbe distorcere un po, non mi interessa di mantenere le proporzioni ma vorrei che venissero fuori tutte immagini della stessa dimensione… Si può fare?

  2. admin Autore articolo

    @Salvatore
    se non ti interessa la distorsione dell’immagine puoi farlo semplicemente con questo comando:
    mogrify -resize ’20×20!’ *.jpg
    tutte le immagini saranno ridimensionate 20 x 20 pixel, grazie al punto esclamativo mogrify non tenterà di preservare le proporzioni, cambia i 20 pixel con la dimensione che serve.

I commenti sono chiusi.