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

Chr*_*ris 8 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;
   }
Run Code Online (Sandbox Code Playgroud)

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

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

Kor*_*eyD 1

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

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

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

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

}