动态更改透明图像颜色

时间:2011-10-01 11:59:44

标签: php image-processing gdlib

我必须使用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或图像棒的任何功能???

1 个答案:

答案 0 :(得分: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.';
}
?>