2013-03-30 14 views
5

Chcę zmienić kolor biały w obrazie (http://www.arso.gov.si/vreme/napovedi%20in%20podatki/radar.gif) na przezroczysty. Myślę, że kod wygląda dobrze, nie ma logów błędów, ale obraz pozostaje niezmieniony. Sprawdziłem dwukrotnie, czy kolor na zdjęciu jest naprawdę biały i tak jest. Proszę pomóż.imagecolortransparent w PHP nie działa

<?php 
    $im = imagecreatefromgif("http://www.arso.gov.si/vreme/napovedi%20in%20podatki/radar.gif"); 

    imagealphablending($im, false); 
    imagesavealpha($im, true); 

    $white = imagecolorallocate($im, 255, 255, 255); 

    imagecolortransparent($im, $white); 

    imagegif($im, './image_radar_tran.gif'); 
    imagedestroy($im); 
?> 
<body style="background-color: lightgoldenrodyellow;"> 
    <img src="./image_radar_tran.gif" /> 
</body> 

Odpowiedz

4

Zmiana:

$white = imagecolorallocate($im, 255, 255, 255); 

Do:

$white = imagecolorexact($im, 255, 255, 255); 

i będzie działać. Powodem jest to, że kolor "biały" jest już zdefiniowany w indeksie używanego gif, więc nie można przydzielić nowego indeksu dla tego koloru. Zamiast tego, używając imagecolorexact, uzyskujesz istniejący indeks dla białego koloru, który możesz użyć, a następnie możesz go zmienić na przezroczysty.