Creare immagine da testo con PHP

Mattepuffo's logo
Creare immagine da testo con PHP

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!


Condividi

2 Commenti

  • franco

    potresti applicare un watermark, avevo letto questo articolo tempo fa: https://www.mattepuffo.com/blog/articolo/3206-applicare-watermark-php-imagick.html

    28/12/2020
  • carlo

    Buongiorno, 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

Commentami!