Utilizzo di cookies
Script GD libray con PHP Modelli Creare immagine Colore e trasparenza Disegnare Pennelli Misurare Filtri Testo Copy Salvare Miscellanea
GD library con PHP
Rendere trasparente un colore
loop su immagine per individuare pixel da rendere trasparenti


e-book
cartaceo

<?php
// carica l'immagine il cui fondo è da rendere trasparente
$ImmagineOpaca = imagecreatefrompng("NomeFile1.png");


// dimensione dell'immagine
$ImmagineOpacaLarghezza = imagesx($ImmagineOpaca);
$ImmagineOpacaAltezza = imagesy($ImmagineOpaca);


// crea una nuova immagine delle stesse dimensioni, a questo punto è nera
$ImmagineNEW = imagecreatetruecolor( $ImmagineOpacaLarghezza, $ImmagineOpacaAltezza );
imagesavealpha( $ImmagineNEW, true ); // prepara il salvataggio per il canale Alpha


// alloca il colore per la trasparenza
$CanaleALPHA = imagecolorallocatealpha( $ImmagineNEW, 0, 0, 0, 127 );


// rende trasparente l'immagine colorandola con il canale Alpha valore 127
imagefill( $ImmagineNEW, 0, 0, $CanaleALPHA );


// legge il colore che dovrà divenire trasparente
// in questo esempio è il centro dell'immagine
$ColoreDaTrasparire = imagecolorat( $ImmagineOpaca, $ImmagineOpacaAltezza/2, $ImmagineOpacaLarghezza/2);


// loop sull'immagine opaca
for($x = 0; $x < $ImmagineOpacaLarghezza; $x++) // scansiona larghezza 
{
for( $y = 0; $y < $ImmagineOpacaAltezza; $y++ ) // scansiona altezza
$ColorePixelLetto = imagecolorat( $ImmagineOpaca, $x, $y ); // legge il colore del pixel
if($ColoreDaTrasparire<>$ColorePixelLetto)// se colore letto è diverso da quello da fare trasparente
{imagesetpixel( $ImmagineNEW, $x, $y, $ColorePixelLetto);} // scrive nella nuova immagine il pixel letto        }}


imagepng($ImmagineNEW, 'NomeFile2.png');// salva
imagepng($ImmagineNEW); al browser
imagedestroy($ImmagineNEW);imagedestroy($ImmagineOpaca);// libera memoria
?> Risultato: