007 ImageMagick® – Incorniciare una immagine

5 Dicembre, 2022 (17:13) | Fotografia digitale, Linux | By: sargonsei

007 ImageMagick® – Incorniciare una immagine.

1) Il modo più semplice per creare creare una cornice attorno ad una immagine, consiste nell’usare l’opzione border.
convert -border 50 immagine1.JPG immagine1+50.jpg # Mette cornice dello spessore di 50 pixels.
convert -border 50x20 immagine1.JPG immagine1+50x20.jpg # Mette cornice alta 50 pixels e larga 20 pixels.

Opzione: [-border 50×20] dove i numeri prima e dopo la x sono rispettivamente lo spessore del bordo orizzontale e lo spessore del bordo verticale, espressi in pixels. L’opzione: [-border 50] ha il medesimo effetto dell’opzione [-border 50×50] .
Per spessore, si intende la distanza fra il bordo dell’immagine originale e il bordo dell’immagine finale, ed è possibile impostare un bordo orizzontale di dimensioni diverse dalle dimensioni del bordo verticale, ma il bordo superiore sarà sempre delle medesime dimensioni del bordo inferiore, ed il bordo sinistro sarà sempre delle medesime dimensioni del bordo destro.
Di conseguenza, l’altezza dell’immagine finale sarà sempre pari all’altezza dell’immagine originale più due volte l’altezza del bordo orizzontale, e la larghezza dell’immagine finale sarà sempre pari alla larghezza dell’immagine originale più due volte la larghezza del bordo verticale.

2) Di default, il bordo aggiunto usando l’opzione border è bianco; per impostare un colore diverso, occorre utilizzare l’opzione bordercolor.convert -border 50x20 -bordercolor red immagine1.JPG immagine1+50x20red.jpg # Mette cornice rossa 50x20
Opzione: [-bordercolor red] dove red è il colore da utilizzare per la cornice, scritto in inglese (in questo caso, ROSSO).
L’opzione: [-bordercolor none] permette di circondare l’immagine originale con una cornice trasparente, a prescindere da quale sia il formato dell’immagine iniziale, ma l’effetto è visibile solo se il formato dell’immagine finale supporta la trasparenza.
convert -border 50x20 -bordercolor none immagine1.JPG immagine1-50x20.png # Mette cornice trasparente

3) Per impostare altri colori del bordo, si veda il punto 3) del capitolo 006 di questa guida.
http://sargonsei.altervista.org/006-ImageMagick/

4) Conoscendo le dimensioni (in pixels) dell’immagine attorno alla quale si vuole creare una cornice, è possibile incorniciarla sovrapponendola al centro di uno sfondo avente le dimensioni dell’immagine incorniciata. A tale scopo, si può usare l’istruzione seguente:
convert -extent 600x550 -background 'rgb(50%, 50%, 50%)' -gravity Center immagine2.JPG immagine2_extent.jpg
# Colloca l'immagine iniziale al centro di uno sfondo GRIGIO di 600x550 pixels, tagliando la parte dell'immagine iniziale che eccede 600x550 pixels.

Dove:
l’opzione [-extent 600×550] colloca l’immagine iniziale all’interno di uno sfondo avente le dimensioni indicate;
l’opzione [-background ‘rgb(50%, 50%, 50%)’] imposta il colore dello sfondo (in questo caso: GRIGIO MEDIO);
l’opzione [-gravity Center] fa sì che il centro dello sfondo coincida col CENTRO dell’immagine da incorniciare.
In ogni caso, l’immagine finale avrà le dimensioni stabilite con l’opzione extent, quindi ciascuno dei due tratti orizzontali della cornice avrà altezza pari alla metà della differenza fra altezza dello sfondo ed altezza dell’immagine iniziale, mentre ciascuno dei due tratti verticali della cornice avrà larghezza pari alla metà della differenza fra la larghezza dello sfondo e la larghezza dell’immagine iniziale; nel caso in cui una o entrambe le dimensioni dell’immagine iniziale siano maggiori della corrispondente dimensione dello sfondo, la parte eccedente verrà tagliata.

5) L’opzione extent consente il contemporaneo utilizzo dell’opzione gravity, tramite la quale è possibile stabilire quali lati dell’immagine iniziale verranno fatti coincidere coi corrispondenti lati dello sfondo e, di conseguenza, incorniciare (o tagliare) i lati rimanenti. Per esempio:
convert -extent 600x550 -background 'rgb(0%, 0%, 0%)' -gravity West immagine2.JPG immagine2_extentW.jpg
# Colloca l'immagine iniziale all'interno di uno sfondo NERO di 600x550 pixels, tagliando la parte dell'immagine iniziale che eccede 600x550 pixels. Bordo e immagine hanno il centro del lato sinistro combaciante.
convert -extent 600x550 -background 'rgb(100%, 100%, 100%)' -gravity East immagine2.JPG immagine2_extentE.jpg
# Colloca l'immagine iniziale all'interno di uno sfondo BIANCO di 600x550 pixels, tagliando la parte dell'immagine iniziale che eccede 600x550 pixels. Bordo e immagine hanno il centro del lato sinistro combaciante.
convert -extent 600x550 -background 'rgb(100%, 0%, 0%)' -gravity NorthWest immagine2.JPG immagine2_extentNW.jpg
# Colloca l'immagine iniziale all'interno di uno sfondo ROSSO di 600x550 pixels, tagliando la parte dell'immagine iniziale che eccede 600x550 pixels. Bordo e immagine hanno lo spigolo superiore sinistro combaciante.
convert -extent 600x550 -background 'rgb(0%, 100%, 0%)' -gravity North immagine2.JPG immagine2_extentN.jpg
# Colloca l'immagine iniziale all'interno di uno sfondo VERDE di 600x550 pixels, tagliando la parte dell'immagine iniziale che eccede 600x550 pixels. Bordo e immagine hanno il centro del lato superiore combaciante.
convert -extent 600x550 -background 'rgb(0%, 0%, 100%)' -gravity NorthEast immagine2.JPG immagine2_extentNE.jpg
# Colloca l'immagine iniziale all'interno di uno sfondo BLU di 600x550 pixels, tagliando la parte dell'immagine iniziale che eccede 600x550 pixels. Bordo e immagine hanno il centro del lato superiore combaciante.
convert -extent 600x550 -background 'rgb(0%, 100%, 100%)' -gravity SouthWest immagine2.JPG immagine2_extentSW.jpg
# Colloca l'immagine iniziale all'interno di uno sfondo CIANO di 600x550 pixels, tagliando la parte dell'immagine iniziale che eccede 600x550 pixels. Bordo e immagine hanno lo spigolo inferiore sinistro combaciante.
convert -extent 600x550 -background 'rgb(100%, 0%, 100%)' -gravity South immagine2.JPG immagine2_extentS.jpg
# Colloca l'immagine iniziale all'interno di uno sfondo MAGENTA di 600x550 pixels, tagliando la parte dell'immagine iniziale che eccede 600x550 pixels. Bordo e immagine hanno il centro del lato inferiore combaciante.
convert -extent 600x550 -background 'rgb(100%, 100%, 0%)' -gravity SouthEast immagine2.JPG immagine2_extentSE.jpg
# Colloca l'immagine iniziale all'interno di uno sfondo GIALLO di 600x550 pixels, tagliando la parte dell'immagine iniziale che eccede 600x550 pixels. Bordo e immagine hanno lo spigolo inferiore destro combaciante.