2013-03-30 33 views
5

Tôi muốn thay đổi màu trắng thành hình ảnh (http://www.arso.gov.si/vreme/napovedi%20in%20podatki/radar.gif) thành trong suốt. Tôi nghĩ rằng mã có vẻ đúng, không có nhật ký lỗi nhưng hình ảnh vẫn không thay đổi. Tôi kiểm tra lại nếu màu trong hình ảnh thực sự là màu trắng và nó được. Hãy giúp tôi.imagecolortransparent trong PHP không hoạt động

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

Trả lời

4

Thay đổi:

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

Để:

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

Và nó sẽ làm việc. Lý do là màu 'trắng' đã được xác định trong chỉ mục của gif bạn đang sử dụng, vì vậy bạn không thể cấp phát chỉ mục mới cho màu đó. Thay vào đó, sử dụng imagecolorexact, bạn sẽ nhận được chỉ mục hiện có cho màu trắng để sử dụng và sau đó có thể thay đổi thành màu trong suốt.

Các vấn đề liên quan