在PHP中使用透明度旋转PNG

时间:2012-09-01 08:11:00

标签: php image-processing png

我在旋转PNG图像时遇到问题,并且保持质量与未旋转时的质量一样高。它也失去了透明度。

以下是我用来旋转它的代码:

$source = imagecreatefrompng('cake-test.png');
$col = imagecolorexact($source, 255, 255, 255);
imagecolortransparent($source, $col) ;
$rotate = imagerotate($source, 10, 0);

imagepng($rotate, 'temp.png') ;

创建的图像在边缘周围显示所有别名并且没有透明度。有谁知道如何让它工作或有他们愿意分享的功能?


谢谢!我在图像所在的div上设置了背景,现在看起来很好。

1 个答案:

答案 0 :(得分:2)

您必须使用imagecolorallocatealpha分配Alpha通道并将imagesavealpha设置为true。 试试这个:

 $source  = imagecreatefrompng('cake-test.png');
 $bgColor = imagecolorallocatealpha($source, 255, 255, 255, 127);
 $rotate  = imagerotate($source, 10, $bgColor);
 imagesavealpha($rotate, true);

 imagepng($rotate, 'temp.png') ;