为什么我用php旋转后无法使png的背景透明?

时间:2010-11-11 18:53:57

标签: php png transparency gd

我昨天整天试着试图解决这个问题。我通过imagerotate()旋转图像。我得到一个黑色背景,图像不再覆盖。我已经尝试了一切我无法想到使背景透明化的东西..

这是我目前的代码..

   function rotate($degrees) {
       $image = $this->image;
       imagealphablending($image, false);
       $color = imagecolorallocatealpha($image, 0, 0, 0, 127);
       $rotate = imagerotate($image, $degrees, $color);
       imagecolortransparent($rotate, $color);
       imagesavealpha($image, true);
       $this->image = $rotate;
   }

我真的开始被勾掉了。有人能告诉我一些工作代码吗?请?

我的WAMP服务器和Dreamweaver可能有问题吗?因为我甚至试过这个.. http://www.exorithm.com/algorithm/view/rotate_image_alpha它仍然会发出黑色或白色背景......

1 个答案:

答案 0 :(得分:1)

尝试在旋转的图像上设置imagesavealpha()。

目前,您在原始图片上运行imagesavealpha()。 [例如imagesavealpha( $ image ,true); ]

相反,你想在旋转的图像上运行imagesavealpha(),然后设置$ this-> image ... try:

   ...
   $rotate = imagerotate($image, $degrees, $color);
   imagecolortransparent($rotate, $color);
   imagesavealpha($rotate, true);  // <- using $rotate instead of $image
   $this->image = $rotate;

}