2011-10-01 123 views
2

我必須動態地使用PHP我用下面的代碼改變透明圖像顏色動態

$imgname = "source.png"; 
$im = imagecreatefrompng ($imgname); 
if($im && imagefilter($im, IMG_FILTER_COLORIZE, 27, 133, 85)) 
{ 
    echo 'Image successfully shaded as per color.'; 

    imagepng($im, 'Result.png'); 
    imagedestroy($im); 
} 
else 
{ 
    echo 'Image create succesfully.'; 
} 

改變圖像的色彩,但是當我用透明的圖像使用它,它給我很大的事情邊境

我們可以解決使用GD Lib或圖像棒的任何功能?

回答

2

如果您正在討論質量問題或陰影問題,則可以在應用過濾器之前使用imagesavealpha函數來解決。

代碼應該是

<?php 
$imgname = "source.png"; 
$im = imagecreatefrompng ($imgname); 
imagesavealpha($im, true); 
if($im && imagefilter($im, IMG_FILTER_COLORIZE, 27, 133, 85)) 
{ 
    echo 'Image successfully shaded as per color.'; 

    imagepng($im, 'Result.png'); 
    imagedestroy($im); 
} 
else 
{ 
    echo 'Image create succesfully.'; 
} 
?> 
+0

,** imagesavealpha()**是工作良好; –

+0

當我使用imagefilter並通過一種顏色,然後顏色改變,但在結果圖像顏色不是我通過。任何建議? – mysterious

+0

如果您共享操作中使用的圖像和圖像顏色,那將會很棒。 –