Avevo gia’ scritto in un post precedente (HowTo: manipolare immagini da terminale) alcune manipolazioni delle immagini con ImageMagick. Tra le quali l’aggiunta di ombre. Questa volta arricchiamo il tutto smussando gli angoli. Vediamo le due operazioni separatamente e poi insieme.
Prima di tutto partiamo dalla nostra solita immagine originale, anche se, essendo stata da me gia’ utilizzata per il post sull’aggiunta del watermark nelle foto, non e’ che sia piu’ cosi’ tanto originale. Comunque la foto e’ questa:
E’ un’immagine
500x375
(le misure ci servono per i comandi che andro’ a scrivere).
Prima di tutto vediamo come smussare gli angoli, stabiliamo le varie misure:
$ convert -size 500x375 xc:none -stroke none -draw "roundRectangle 5,5 495,370, 12,12" originale.jpg -compose SrcIn -composite smussata.png
Stiamo dicendo di creare un’immagine 500×375 trasparente (ragion per cui siamo passati dal JPG dell’originale al PNG) sulla quale disegnare un rettangolo con gli angoli smussati (roundRectangle x0,y0 x1,y1 wc,hc
) posizionato alle coordinate 5 in alto a sinistra e 5 in basso a destra, con larghezza degli angoli di 12 e altezza degli angoli di 12 contenete la nostra foto originale.
Ed ecco il risultato:
Ora aggiungiamo l’ombra alla nostra immagine smussata, propongo due opzioni. Questa e’ la prima:
$ convert smussata.png \( +clone -background black -shadow 80x4+3+3 \) +swap -background none -mosaic ombrata-1.png
e questa e’ la seconda:
$ convert -page +5+5 smussata.png \( +clone -background black -shadow 50x2+5+5 \) +swap -background none -mosaic ombrata-2.png
Con entrambi i comandi stiamo dicendo di simulare un’ombra (shadow) con la percentuale di opacita’ pari all’80% nel primo e al 50% nel secondo e sigma pari a 4 nel primo e 2 nel secondo. Mentre l’immagine rispetto all’ombra (stabilendone di fatto le dimensioni) dovra’ posizionarsi alle coordinate +/-x e +/-y (nel nostro caso x e y coincidono e sono +3 nel primo +5 nel secondo). Il tutto su sfondo trasparente. Nel secondo comando in piu’ c’e’
page
che mette l’immagine sopra una tela virtuale prima di fare il resto delle operazioni.
Ovviamente possiamo fare entrambe le cose (smussare gli angoli e inserire l’ombra) con un unico comando. E’ un po’ lungo, ma e’ bello. Eccolo:
$ convert -size 500x375 xc:none -stroke none -draw "roundRectangle 5,5 495,370, 12,12" originale.jpg -compose SrcIn -composite -compose over \( +clone -background black -shadow 50x2+5+5 \) +swap -background none -mosaic smussata-e-ombrata.png
Ovviamente se vi sembra troppo lungo potete inserirlo in uno script, renderlo eseguibile e richiamarlo con un solo comando da terminale.
Fonte: Help with round corners and drop shadows