Script bash: creare wallpaper funzionali grazie a ImageMagick!

Settembre 20, 2007

Per chi non le conoscesse, le librerie ImageMagick permettono di eseguire veramente un numero spropositato di funzioni su qualsiasi tipo di file immagine. Nonostante esistano diversi front-end per ogni tipo di desktop, le funzionalità da shell sono le più intriganti, e permettono di creare in pochi minuti script come il seguente.

Uno sfondo… ben fatto ;)


Quello che vedete qui sopra è un ottimo esempio di sfondo “funzionale”: l’immagine a destra, a sinistra tanto spazio per le icone. Ma come fare se le immagini sono tante, e la voglia di ridimensionarle tutte a mano è poca? Presto fatto! Eccovi il mio script:

#!/bin/zsh
for file in "$@"; do
        convert "$file" -resize 600x700 img_small.png
        mogrify -border 2x2 -bordercolor white img_small.png
        convert -size 1280x800 xc:black canvas.png
        ((width=1280 - $(identify -format %w img_small.png) - 50))
        fname="`basename "$file" .jpg`_wp.png"
        convert canvas.png -draw "image over $width,50 0,0 'img_small.png'" "$fname"
        echo "File $file done;"
done
rm canvas.png img_small.png

Semplice no? Ok, vediamolo insieme: per ogni file presente negli argomenti dello script; lo ridimensioniamo a 600×700 (cioè vincolando il lato più lungo dell’immagine a 600 o 700); aggiungiamo un bordino di 2×2 pixel bianco all’immagine; creiamo un file canvas.png tutto nero su cui “incollare” l’immagine; calcoliamo la larghezza dell’immagine con identify (o meglio, la posizione da cui l’immagine dovrà essere disegnata); calcoliamo il nome del file dello sfondo (che sarà immagine_originale_wp.png); mettiamo l’immagine sul canvas con convert -draw ecc. ecc, e diamo una conferma all’utente.

Questo script crea sfondi perfetti per il mio portatile, vista la risoluzione di 1280×800; se volete configurarlo per una risoluzione diversa, ricordatevi di cambiare – oltre ai suddetti valori – anche quelli dell’immagine ridimensionata (nel mio script 600 e 700, per intenderci).

Lo script non modifica le immagini originali, quindi potete fare tutte le prove che volete. In ogni caso vi consiglio di fare una copia di backup, non voglio avere responsabilità ;)

Un esempio: ./crea_sfondi.sh /cartella_delle_immagini/*.jpg

Buon divertimento!

Entry Filed under: fotoritocco, programmazione. .

Leave a Comment

hidden

Some HTML allowed:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Trackback this post  |  Subscribe to the comments via RSS Feed


Calendar

Settembre: 2007
L M M G V S D
« Ago   Dic »
 12
3456789
10111213141516
17181920212223
24252627282930

Most Recent Posts