Viene creata un'immagine di 4 colori con
imagecreate() e su di essa disegnate figure geometriche.
Notare che il primo colore definito è automaticamente assegnato allo sfondo.
Con
imagecolorat(), viene letto un punto/colore x,y dell'immagine e con
imagecolortransparent() reso trasparente quel colore per tutta l'immagine.
Cambiando i valori x,y per una posizione con altro colore, sarà quest'ultimo ad essere reso trasparente.
<?php
$Immagine =
imagecreate(200,200); // crea immagine
$Rosso =
imagecolorallocate($Immagine, 255,0,0);// definisce Rosso
// il primo colore definito è automaticamente assegnato allo sfondo
$Verde =
imagecolorallocate($Immagine, 0,255,0);
$Blu =
imagecolorallocate($Immagine, 0,0,255);
$Giallo =
imagecolorallocate($Immagine, 255,255,0);
// quadrati grandi, quello di colore non è necessario perchè lo sfondo è Rosso
imagefilledrectangle($Immagine,100,0,200,100,$Verde);
imagefilledrectangle($Immagine,100,100,200,200,$Blu);
imagefilledrectangle($Immagine,0,100,100,200,$Giallo);
// quadrati piccoli agli angoli
imagefilledrectangle($Immagine,150,0,200,50,$Rosso);
imagefilledrectangle($Immagine,150,150,200,200,$Verde);
imagefilledrectangle($Immagine,0,150,50,200,$Blu);
imagefilledrectangle($Immagine,0,0,50,50,$Giallo);
imagegif($Immagine,"es_55_GIF_con_trasparenza_1.gif"); // salva senza trasparenza
// legge punto x,y dell'immagine
$ColoreTrasparenza =
imagecolorat($Immagine, 1, 1);
// rende trasparente il colore letto nel punto x,y
imagecolortransparent($Immagine, $ColoreTrasparenza);
header("Content-type: image/gif");
imagegif($Immagine,"es_55_GIF_con_trasparenza_2.gif"); // salva
// salva PNG (alternativo ed incompatibile con le istruzioni delle 2 righe precedenti)
// header("Content-type: image/png");
//
imagepng($Immagine,"NomeFile.png"); // salva
imagegif($Immagine); // al browser
imagedestroy($Immagine); // libera memoria
?>
Risultato: