Immagini e php: imagecreate()

by casalegno on

Con PHP si può disegnare, o meglio, si possono manipolare le immagini. Un servizio utile che si può ottenere sfruttando la libreria GD è quello di generare immagini dinamiche passando alcune variabili alla pagina che legera.

Ad esempio se volessi realizzare un immagine che cambia settimanalmente alla quale devo aggiungere del testo o della grafica, posso lavorare in modo standard cercando di sovrapporre le varie immagini tramite livelli con i css, oppure passare queste singole immagini ad una funzione in PHP ed ottenere un risultato.

Un esempio pratico può essere l’immagine che genera ogni settimana l’intestazione del forum di Vaccasepiega.
Il codice per ottenere un risultato simile è abbastanza semplice:

header("Content-Type: image/jpg");
$image = imagecreatetruecolor(300,200);
$bianco= imagecolorallocatealpha($image,255,255,255,0);
$verde= imagecolorallocatealpha($image,0,139,0,0);
$rosso= imagecolorallocatealpha($image,255,0,0,0);
imagefill($image,0,0,$bianco);
imagefilledrectangle($image, 0,0, 100, 200, $verde);
imagefilledrectangle($image, 200,0, 300, 200, $rosso);
imagejpeg($image);
imagedestroy($image);

Analizziamo il codice riga per riga

  • Nella prima riga abbiamo l’intestazione: dichiariamo la tipologia del file, in questo caso un immagine JPG
  • Creiamo un’immagine di dimensione 300px per 200px (larghezza per altezza)
  • Creiamo i tre colori della bandiera italiana, il bianco, il verde, il rosso, assegnando valore 0 al livello alpha che gestisce la trasparenza.
  • Coloriamo tutta l’immagine di bianco, partendo dall’angolo sinistro alto
  • Creiamo quindi un rettangolo di colore verde, partendo sempre dall’angolo sinistro alto, largo 100px e altro 200px
  • Creiamo l’ultimo rettangolo, quello rosso, partendo sempre dal bordo alto (0) ma spostandoci di 200px da sinistra. Lo facciamo sempre alto 200px e largo 100px (300 di arrivo – 200 di partenza)
  • Stampiamo l’immagine, con la funzione definita in base alla tipologia scelta in testata (JPG)
  • Distruggiamo l’immagine per liberare la memoria

Questo il risultato:

Leggi il contenuto originale su KREATORE.IT

Written by: casalegno