2013-03-30 19 views
5

Ich möchte weiße Farbe im Bild (http://www.arso.gov.si/vreme/napovedi%20in%20podatki/radar.gif) zu transparent ändern. Ich denke, dass Code richtig aussieht, es gibt keine Fehlerprotokolle, aber das Bild bleibt unverändert. Ich habe überprüft, ob die Farbe im Bild wirklich weiß ist und es ist. Bitte helfen Sie.imagecolortransparent in PHP funktioniert nicht

<?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> 

Antwort

4

Wechsel:

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

An:

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

Und es wird funktionieren. Der Grund dafür ist, dass die Farbe "weiß" bereits im Index des von Ihnen verwendeten Gifs definiert ist, so dass Sie keinen neuen Index für diese Farbe zuweisen können. Stattdessen können Sie mit dem Befehl imagecolorexact den vorhandenen Index für die weiße Farbe verwenden und ihn dann in transparent ändern.