2013-03-30 8 views
5

イメージ(http://www.arso.gov.si/vreme/napovedi%20in%20podatki/radar.gif)の白い色を透明に変更したいと思います。私はコードが正しいように見える、エラーログはありませんが、画像は変更されません。私はイメージの色が本当に白であるかどうかを二重に確認しました。助けてください。PHPのimagecolort transparentが動作しない

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

答えて

4

変更:

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

へ:

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

そして、それは動作します。その理由は、使用しているgifのインデックスに「白」の色が既に定義されているため、その色に新しいインデックスを割り当てることができないためです。代わりに、imagecolorexactを使用して、使用する白色の既存のインデックスを取得し、透明に変更することができます。