5

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

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

1 に答える 1

5

変化する:

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

に:

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

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

于 2013-03-30T19:29:55.943 に答える