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.
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. .
Trackback this post | Subscribe to the comments via RSS Feed