La riga di comando di Linux, ci permette di fare una enorme quantità di cose, incluso modificare delle immagini, siano esse fotografie, o disegni. Il pacchetto ImageMagick mette a disposizione una serie di comandi, fra i quali:
convert,
mogrify,
montage e
composite.
Operazioni preliminari.Per prima cosa, usando il browser di navigazione fra le cartelle, apriamo la cartella che contiene l'immagine interessa, e impostiamo la modalità di visualizzazione “Anteprimaâ€; ciò ci permette di vedere le immagini contenute in quella cartella, senza doverle aprire.
Ora apriamo un terminale esattamente nella cartella in cui ci sono le immagini (il fatto che il terminale sia aperto esattamente nella cartella in cui si trovano le immagini da manipolare, non è strettamente necessario, ma semplifica non poco il nostro compito). Se stiamo utilizzando Linux con GNOME, probabilmente il nostro browser è Nautilus, e per aprire un terminale esattamente nella cartella aperta e visualizzata in quel momento, occorre utilizzare il menù a tendina
-> File -> Apri nel terminale. Se stiamo utilizzando Linux con KDE, probabilmente il nostro browser è Dolphin, e per aprire un terminale esattamente nella cartella aperta e visualizzata in quel momento, occorre utilizzare il menù a tendina
-> Visualizza -> Pannelli -> Terminale.
Ora vediamo le nostre immagini, e siamo pronti per manipolarle.
Nelle istruzioni che seguono, fileinput.jpg è il nome del file PRIMA della manipolazione, e .fileoutput.jpg è il nome del file DOPO la manipolazione; è comunque possibile utilizzare qualsiasi altro nome. Se vogliamo manipolare un'immagine collocata in una cartella diversa da quella in cui abbiamo aperto il terminale, e/o mettere l'immagine manipolata in una cartella diversa da quella in cui abbiamo aperto il terminale, dobbiamo semplicemente anteporre il percorso al nome del file. Se i due nomi sono uguali e il file di output viene collocato nella stessa cartella del file di input, il comando cancella l'immagine di partenza. Se i due nomi dieffe:riscono per l'estensione, il comando convert converte il formato dei file, a seconda delle estensioni fornite.
Cominciamo.L'opzione resize permette di ridefinire le dimensioni delle immagini. Per esempio: se vogliamo ottenere un'immagine alta 200 pixel e larga 200 pixel, impartire il comando
convert -resize 200x200! fileinput.jpg fileoutput.jpg
Noterete che questa funzione modifica la proporzione delle immagini. Se non vogliamo cambiare le proporzioni, ma ottenere un'immagine proporzionata a quella di partenza, interpretando cioè le dimensioni come dimensioni MASSIME, utilizziamo il medesimo comando, ma senza il punto esclamativo. Cioè:
convert -resize 200x200 fileinput.jpg fileoutput.jpg
Ovviamente, se si vuole che il file convertito sia largo (o alto) non più di 50 pixel, è sufficiente scrivere 50 al posto di 200.
Se invece desideri ruotare di 90 gradi un'immagine, devi dare il comando
convert -rotate 90 fileinput.jpg fileoutput.jpg
Ovviamente, se si vuole ruotare l'immagine per un numero di gradi diverso da 90, è sufficiente sostituire 90 con il numero di gradi voluto. Se i gradi scritti NON sono un multiplo di 90, il comando aggiunge 4 triangoli bianchi, uno per ogni angolo, in modo da non tagliare l'immagine ruotata.
Per ruotare di 90 gradi tutte le immagini contenute in una cartella aventi estensione .jpg, dare il comando
mogrify -rotate 90 *.jpg
Per ruotare di 90 gradi tutte le immagini contenute in una cartella che cominciano con ini ed aventi estensione .jpg, dare il comando
mogrify -rotate 90 ini*.jpg
Per trasformare un'immagine a colori un un'immagine a soli 8 colori, impartire il comando
mogrify -colors 8 immagine.jpg
oppure
convert -colors 8 fileinput.jpg fileoutput.jpg
Per specchiare un'immagine invertendo la sinistra con la destra, impartire il comando
convert -flop fileinput.jpg fileoutput.jpg
Per specchiare un'immagine invertendo l'alto con il basso, impartire il comando
convert -flip fileinput.jpg fileoutput.jpg
per specchiare un'immagine e poi ruotarla di 90° in senso orario, dare il comando
convert -transpose fileinput.jpg fileoutput.jpg
per ruotare l'immagine di 90° in senso orario e poi specchiarla, dare il comando
convert -transverse fileinput.jpg fileoutput.jpg
Per trasformare un'immagine a colori in un'immagine a scala di grigi, usare il comando
convert -colorspace gray fileinput.jpg fileoutput.jpg
Per ottenere il negativo di un'immagine, impartire il comando
convert -negate fileinput.jpg fileoutput.jpg
Per aggiungere un bordo largo 5 puxel ed alto 10 pixe, usare il comando
convert -border 5x10 fileinput.jpg fileoutput.jpg
Per ottenere una gif animata fatta di tutti i files gif contenuti in una directory e messi in ordine alfabetico, impartire il comando
convert -delay 100 *.gif gifanimata.gif
N.B.: il tempo di ritardo delle singole immagini, è espresso in centesimi di secondo; le immagini, avranno comunque dimensioni non superiori a quella della prima immagine della gif animata, ed appariranno sovrapponendosi alle precedenti, quindi si consiglia di unire immagini delle stesse dimensioni.
Per creare la gif animata di un'immagine che si trasforma in un'altra con 15 immagini di transizione intervallate da 10 centesimi di secondo, usare il comando:
$ convert -morph 15 -delay 10 immagine1.jpg immagine2.jpg morph.gif
Per altre informazioni, impartire il comando convert -man.
Siti interessanti:
http://idl3.wordpress.com/2009/10/26/howto-manipolare-immagini-da-terminale/