008 ImageMagick® – Inserire un commento o altro testo in una immagine

5 Dicembre, 2022 (17:31) | Fotografia digitale, Linux | By: sargonsei

008 ImageMagick® –Inserire un commento o altro testo in una immagine.

Volendo scrivere un testo all’interno di una immagine, occorre prima creare una ulteriore immagine contenente il testo voluto, e poi unire le due immagini come spiegato nel capitolo [009 – ImageMagick® – Unire immagini] di questa stessa guida.

1) Il modo più semplice per creare un’immagine contenente un testo alto 48 pixels, è impartire un comando tipo il seguente:
convert -pointsize 48 label:"Immagine contenente testo" testo1.gif
# Crea un'immagine contenente il testo prefissato, alto 48 pixels + opzioni di default.
L’unico parametro che non può essere omesso è il testo da scrivere nell’immagine ma, se si omette anche l’altezza del carattere, il risultato finale non può essere adattato alle nostre necessità.

2) Volendo avere un miglior controllo sul risultato finale, è utile padroneggiare le opzioni seguenti:
l’opzione [-background ‘rgb(0, 0, 256)’] imposta il colore dello sfondo (in questo caso: BLU; default: BIANCO);
l’opzione [-fill red] imposta il colore del testo (in questo caso: ROSSO; default: NERO);
l’opzione [-font Ubuntu] imposta il font del testo (in questo caso: Ubuntu);
l’opzione [-pointsize 48] imposta le dimensioni del testo (in questo caso: 48 pixels; default: 12 pixels);
l’opzione [-label:”Immagine contenente testo”] imposta il contenuto del testo (in questo caso: “Immagine contenente testo”);
l’opzione [-size 165×70] imposta le dimensioni esatte dell’immagine contenente il testo, tagliando il testo in eccesso;
l’opzione [-gravity center] imposta la giustificazione del testo all’interno dell’immagine.

3) Un comando più completo per creare un’immagine contenente un testo, è impartire un comando tipo il seguente:
convert -background 'rgb(0, 0, 256)' -fill red -font Ubuntu -pointsize 48 label:"Immagine contenente testo" testo3.gif
# Crea un'immagine contenente il testo prefissato, impostando colore dello sfondo (BLU), colore del testo (ROSSO), font di caratteri (Ubuntu), dimensioni del font (48), e testo dell'immagine. Di default, le dimensioni dell'immagine sono le minime indispensabili, e la posizione del testo è CENTRATA.

4) Quando il testo deve essere scritto su un’unica riga, e vogliamo impostare: dimensioni del font di caratteri, dimensione dell’immagine, e posizione del testo all’interno dell’immagine, il comando più completo è il seguente:
convert -background 'rgb(0, 0, 100)' -fill red -font Ubuntu -pointsize 24 -size 165x70 -gravity center label:"Immagine contenente testo" testo4.gifIn questo caso, se la lunghezza del testo dovesse eccedere la lunghezza dell’immagine, il testo verrà troncato.

5) Quando il testo deve essere scritto su un’unica riga e si imposta la dimensione dell’immagine, ma non le dimensioni del font di caratteri, ImageMagick imposta automaticamente le dimensioni del testo in modo che imposti automaticamente le dimensioni dei caratteri più grande possibile, rispettando le proporzioni dei caratteri e senza andare a capo.
convert -background 'rgb(0, 0, 100)' -fill red -font Ubuntu -size 165x70 -gravity center label:"Immagine contenente testo" testo5.gif

6) Per andare a capo, occorre anteporre la stringa \n al testo che deve essere scritto nella riga sottostante. Anche in questo caso:
5a) SE si impostano sia le dimensioni dei caratteri, sia le dimensioni dell’immagine, la parte del testo che eccede i limiti dell’immagine, verrà troncata;
convert -background 'rgb(0, 0, 100)' -fill red -font Ubuntu -pointsize 24 -size 165x70 -gravity center label:"Immagine\n contenente\n testo" testo6a.gif
5b) SE si impostano le dimensioni dei caratteri ma non le dimensioni dell’immagine, ImageMagick imposta automaticamente le dimensioni dell’immagine in modo che siano le dimensioni minime indispensabili per contenere tutto il testo;
convert -background 'rgb(0, 0, 100)' -fill red -font Ubuntu -pointsize 24 -gravity center label:"Immagine\n contenente\n testo" testo6b.gif
5c) SE si impostano le dimensioni dell’immagine ma non le dimensioni dei caratteri, ImageMagick imposta automaticamente le dimensioni dei caratteri più grande possibile, rispettando le proporzioni dei caratteri in modo che nulla venga tagliato.
convert -background 'rgb(0, 0, 100)' -fill red -font Ubuntu -size 165x70 -gravity center label:"Immagine\n contenente\n testo" testo6c.gif

7) Le opzioni possibili sono molte di più; per una conoscenza completa, consiglio di consultare la pagina web ufficiale:
https://imagemagick.org/Usage/text/