
Sfondi che passione! Creali con uno script shell
Poche righe di codice Bash per creare automaticamente wallpaper di diverse dimensioni in modo che si adattino agli schermi di più computer
(pagina 4 di 4)
01 #!/bin/bash
02 polaroid=${1/.jpg/_polaroid.png}
03 gray=${1/.jpg/_gray.png}
04 output=${1/.jpg/_nice.jpg}
05 convert $1 -thumbnail 30% -bordercolor white
-background black -polaroid +15 ${polaroid}
06 convert $1 -colorspace Gray ${gray}
07 composite -gravity SouthEast -geometry
+100+100 ${polaroid} ${gray} ${output}
08 rm -f ${polaroid} ${gray}
“Disegnare” sfondi artistici
 |
Foto di partenza passata allo script nicewp.sh |
Ovviamente, un programma che si occupa di tagliare in automatico
le immagini, non si presta a lavori più artistici e, quindi,
se vogliamo affinare il nostro lavoro per ottenere immagini
più belle e personali, non ci resta che intervenire manualmente.
Nonostante ciò, però, possiamo ancora effettuare qualche piccolo
ritocco, sempre in automatico, per dare alle immagini un
tocco più personale. Con il secondo script, vedremo come, con
pochi comandi di ImageMagick, è possibile cambiare radicalmente
l’aspetto di un’immagine. Attenzione alla versione di ImageMagick installata sul proprio PC: nel nostro caso abbiamo
utilizzato la 6.3.7, pertanto con versioni precedenti alcuni dei
comandi potrebbero non funzionare correttamente o non essere
addirittura disponibili.
[02-04] Lo script accetta in input il nome di un file (il controllo
sulla variabile $1 è stato omesso per brevità) e nel codice utilizzeremo
due file temporanei i cui nomi sono contenuti nelle
variabili ${polaroid} e ${gray}. I nomi dei file temporanei sono
ottenuti da quello di ingresso aggiungendo una stringa preceduta
dal carattere underscore; il formato dei file viene cambiato
in PNG per poter supportare le trasparenze. Inoltre, verrà anche
creato il nome del file di output, aggiungendo la stringa “nice”;
il formato di questo file può rimanere JPG, in quanto le immagini
temporanee verranno sovrapposte, pertanto non è necessario utilizzare le trasparenze.
[05] Prima di tutto utilizziamo il comando -polaroid di convert
per creare una versione ridotta dell’immagine contornata da un
bordo bianco e con ombreggiatura (simile, appunto, ad una foto
ottenuta con una Polaroid); la dimensione dell’immagine è il
30% di quella originale. Questo dato è stabilito tramite l’opzione
-thumbnail, mentre il bordo bianco e l’ombra sono indicati
dalle opzioni -bordercolor e -background. È importante notare
che il comando -polaroid è seguito dal numero +15, che indica
una rotazione dell’immagine di 15 gradi in senso orario.
[06] Sempre utilizzando convert creiamo una versione dell’immagine
in toni di grigio, della stessa grandezza di quella originale;
per ottenere questo effetto cambiamo semplicemente lo
spazio dei colori utilizzato per l’immagine di output, utilizzando
il comando -colorspace Gray.
[07] A questo punto, sovrapponiamo le due immagini, ponendo
la prima in basso a destra (opzione -gravity SouthEast), ma
distanziata dal bordo di 100 pixel a destra e in basso (opzione
-geometry +100+100); seguono, infine, le indicazioni delle immagini
da sovrapporre, in ordine dalla più vicina alla più lontana,
e il file di uscita, cioè la nuova immagine.
 |
Sfondo creato con lo script nicewp.sh e alcuni parametri modificati |