我必须使用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库或图像棒解决任何功能吗??
如果您谈论的是质量问题或阴影问题,那么我可以在应用过滤器之前使用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.';
}
?>