Qualche volta ho bisogno di un semplice comando per ridimensionare una grande quantità di immagini JPEG, ad esempio quando le devo inviare via Internet e non è necessario mantenere un'elevata risoluzione.
Un programma molto veloce per effettuare il ridimensionamento è convert, della suite di programmi ImageMagick,
normalmente presente nei repository ufficiali delle principali distribuzioni.
Si può utilizzare il ciclo for della shell Bash: servono 2 directory nelle quali mettere rispettivamente le immagini da ridimensionare e quelle ridimensionate, ad esempio Source e Resized, posizionate nella stessa directory. Quindi si copiano i file da ridimensionare nella directory Source.
Si apre quindi una shell, posizionandosi nella directory Source e si lancia il comando:
$ for i in * ; do convert "$i" -filter lanczos -resize 2280x2280 -quality 90 "../Resized/$i" ; done
e si attende il completamento dell'operazione. I file sorgenti verranno processati ad uno ad uno e man mano che l'operazione procede verranno creati i files ridimensionati, con lo stesso nome degli originali, nella directory Resized.
I parametri che si possono aggiustare sono:
- dimensione dell'immagine: nell'esempio convert scalerà l'immagine fino alla massima risoluzione di 2280 pixel sia in altezza che in larghezza mantenendo il rapporto di aspetto originale (per maggiori informazioni sulla geometria del ridimensionamento fare riferimento alla documentazione ufficiale); in altre parole, l'immagine sarà sempre di 2280 px sul lato più lungo, mentre il lato più corto sarà calcolato al fine di mantenere le proporzioni;
-
filtro da utilizzare, imposta quale algoritmo utilizzare per il ridimensionamento: io preferisco il Lanczos, ma è una questione di gusti; l'opzione
-filterpuò anche essere omessa; - qualità del file JPEG voluta, che imposta il livello di compressione e, quindi, le dimensioni dei file voluti.
Nessun commento:
Posta un commento
I comenti sono moderati, non compariranno subito ma dopo l'approvazione. Grazie per la pazienza.