#howto - Modificare le immagini con ImageMagick

Scritto da il
Redatto da
imagemagick
ubuntu
archlinux
fedora
meme
immagini

Anche il terminale è una buona risorsa per modificare immagini, ridimensionarle, creare scritte o sfocarle.

Installare ImageMagick

ImageMagick è disponibile in genere per tutte le distribuzioni tramite package manager.

Ubuntu e derivate

Per installare ImageMagick su Ubuntu digitare

apt install imagemagick

Fedora

Per installare ImageMagick su Fedora digitare

dnf install imagemagick

ArchLinux

Per installare ImageMagick su ArchLinux digitare

pacman -S imagemagick

Aggiungere scritte e fare meme

In genere i meme hanno quasi tutti la stessa struttura: un immagine di base e delle scritte posizionate in diversi punti: ad esempio in alto e in basso oppure in un determinato punto.

Per aggiungere delle scritte sull’immagine con ImageMagick scriviamo:

convert immagine-da-memare.png -font percorso/font/bello.ttf -fill <colorefont> -pointsize <dimensione> -stroke <colorecontorno> -strokewidth <dimensione contorno> -gravity <dove scrivere> -annotate +0+0 'TESTO' immagine-memata.png

Facendo un esempio concreto:

  • Usando il carattere LiberationSerif Regular
  • Il carattere sarà colorato di bianco
  • La linea esterna, o il contorno che dir si voglia, del carattere sarà nera
  • Lo spessore del contorno sarà 2 pixel
  • La scritta sarà posizionata in basso

Ecco un comando completo:

convert immagine-da-memare.png -font /usr/share/fonts/liberation/LiberationSerif-Regular.ttf -fill white -pointsize 30 -stroke black -strokewidth 2 -gravity south -annotate +0+0 'MEME DA TERMINALE YEAH :D' immagine-memata.png 

Come si può notare, il parametro “gravity” riceve come valore una posizione “cardinale”, altri valori validi sarebbero stati:

  • north
  • east
  • west

Vanno bene anche le “intersezioni” tra le varie coordinate.

Il numero presente vicino il parametro annotate specifica “l’offset” rispetto al lato scelto, in verticale e quindi in orizzontale.

Più scritte

Ovviamente reiterando più volte il procedimento si potranno aggiungere ulteriori scritte, per fare un meme con la scritta sia sopra che sotto basterà farlo una volta indicando “south” come gravity e un altra volta “north”.

Oppure si può unire tutto in un comando solo indicando entrambe le gravità ed entrambe le scritte così:

convert immagine-da-memare.png -font /usr/share/fonts/liberation/LiberationSerif-Regular.ttf -fill white -pointsize 30 -stroke black -strokewidth 2 -gravity north -annotate +0+0 'QUESTA SCRITTA SARÀ SOPRA' -gravity south -annotate +0+0 'QUESTA SCRITTA SARÀ SOTTO' immagine-memata.png

Screenshot da terminale

Esistono vari tool per scattare screenshot da terminale, ma anche ImageMagick fa il suo lavoro in maniera eccellente. Per farlo si può utilizzare il programma “import”:

import -window root percorso/nomescreenshot.jpg

Con “root” indichiamo tutto lo schermo come fonte dello screenshot.

Screenshot ridimensionato

Si può pensare di fare una resize dell’immagine uscente:

import -window root -resize [percentuale_di_ridimensionamento]%  percorso/nomescreenshot.jpg

Ad esempio 50%:

import -window root -resize 50%  percorso/nomescreenshot.jpg

Screenshot Ritagliato

import -window root -crop [larghezza]x[altezza]+[offsetX]+[offsetY]  percorso/nomescreenshot.jpg

Ad esempio una regione 100x250 a 10 pixel dallo schermo da destra e 15 pixel dall’alto:

import -window root -crop 100x250+10+15  percorso/nomescreenshot.jpg

Sfocatura

Vanno ormai molto di moda le immagini sfocate con la gaussiana, in genere messe sotto un elemento che rimane chiaro e ben visibile. Come si sfoca un immagine da terminale?

Ancora una volta ci aiuta imagemagick con l’attributo “blur”:

convert <nomeimmagine> -blur <radius>x<sigma> <nomeimmagineoutput>

Ora per capire bene il significato di radius e sigma bisogna capire come funziona la sfocatura gaussiana.

Raggio di sfocatura

Non me ne vogliano quelli più esperti che sanno perfettamente cos’è una sfocatura gaussiana, ma la definizione sarà molto approssimativa ed esemplificata per far capire a tutti come aggiustare i parametri.

Quando un immagine viene sfocata, è come se venisse passata una lente con un certo raggio di sopra che esamina poco a poco delle parti dell’immagine, le parti esaminate vengono “mescolate” tra di loro introducendo anche un “elemento di disordine”.

Quel che deteremina quanto è grande la lente è la variabile sopra definita come “radius”, mentre l’elemento di disordine è “sigma”. Più sigma è elevato, più il blur è “efficace”.

Ad esempio sfochiamo con raggio 1 e sigma 10:

convert /path/immaginedasfocare.png -blur <radius>x<sigma> /path/immaginesfocata.png

Tornare indietro nelle modifiche

Si può tornare indietro nelle modifiche, ovvero “rimettere a fuoco” l’immagine sfocata se si conoscono i parametri di sfocatura, grazie al parametro “sharpen”:

convert immaginesfocata.jpg -sharpen <radius>x<sigma> immagineMENOsfocata.jpg

ovviamente non fa miracoli, potrebbe risultare “meno sfocata” oppure non sfocata in base ai casi. Ecco un esempio opposto a quello di cui sopra:

convert immaginesfocata.jpg -sharpen 0x10 immagineMENOsfocata.jpg
history_edu Revisioni