Creare immagine da testo con PHP
La libreria GD di PHP è ben fornita di funzioni per la creazione e manipolazione di immagini.
Oggi vediamo come creare una immagine da una scritta; l'immagine non verrà creata fisicamente sullo spazio web, ma sarà il testo a essere tramutato in immagine e messo nella pagina.
Questo il codice:
// img.php
header("Content-type: image/png");
$imageCodice = imagecreate(200, 40);
$bg = imagecolorallocate($imageCodice, 255, 255, 255);
$tc = imagecolorallocate($imageCodice, 0, 0, 0);
imagestring($imageCodice, 5, 0, 12, "HELLO WORLD!", $tc);
imagepng($imageCodice);
imagedestroy($imageCodice);
Prima impostiamo il tipo di immagine che sarà inviata all'header della pagina (PNG in questo caso).
Poi usiamo la funzione imagecreate per creare l'immagine; i parametri corrispondono a larghezza e altezza.
Con la funzione imagecoloallocate impostiamo il colore dell'immagine; come parametri gli diamo l'immagine creata prima, e i valori RGB.
Poi usiamo di nuovo la funzione per il testo.
La funzione imagestring imposta l'immagine dal testo; i parametri corrispondono all'oggetto immagine creato sopra, grandezza del font, posizione x e y, testo e colore.
La funzione imagepng manda in output l'immagine in formato PNG.
Sotto distruggiamo l'immagine con imagedestroy.
Ultimo tips: vogliamo che lo sfondo sia trasparente.
Basterà aggiungere una riga:
header("Content-type: image/png");
$imageCodice = imagecreate(200, 40);
$bg = imagecolorallocate($imageCodice, 255, 255, 255);
imagecolortransparent($imageCodice, $bg);
$tc = imagecolorallocate($imageCodice, 0, 0, 0);
imagestring($imageCodice, 5, 0, 12, "HELLO WORLD!", $tc);
imagepng($imageCodice);
imagedestroy($imageCodice);
Esattamente usiamo la funzione imagecolortransparent; direi che si commenta da sola.
A questo punto per richiamare l'immagine nella pagina, basterà impostare come sorgente il file con il codice:
<img src="img.php" alt="HELLO WORLD!">
Tutto qua.
Ciao!
php png header imagecreate imagecolorallocate imagestring imagepng imagedestroy rgb imagecolortransp
2 Commenti
potresti applicare un watermark, avevo letto questo articolo tempo fa: https://www.mattepuffo.com/blog/articolo/3206-applicare-watermark-php-imagick.html
28/12/2020Buongiorno, con la libreria GD e php, è possibile ad una immagine jpg caricata a video sovrapporre una seconda immagine di dimensioni inferiori (es. una spunta o un cerchietto) in una determinata posizione in base ad un determinato valore del tag <input>? Se cortesemente mi può indicare la modalità o dei riferimenti e se bisogna aggiungere attributi all'img base di partenza inserita con un semplice <img>. Grazie. Carlo
28/12/2020