旋转PNG图像,并保持透明背景
我想旋转图像,但我似乎无法维护图像本身。
这就是我所拥有的:
// Content type
header('Content-type: image/png');
$image = 'http://mapning.com/img/plane.png';
$file = imagecreatefrompng($image);
// Rotate
$rotate = imagerotate($file, $angle, 0);
// Output
imagepng($rotate);
我做错了什么?
I want to rotate an image, but i seem to be unable to maintain the image itself.
This is what i have:
// Content type
header('Content-type: image/png');
$image = 'http://mapning.com/img/plane.png';
$file = imagecreatefrompng($image);
// Rotate
$rotate = imagerotate($file, $angle, 0);
// Output
imagepng($rotate);
What am I doing wrong?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你必须特别强制 GD 保持透明度。 尝试。
在
imagepng()
调用之前You have to specifically force GD to preserve transparency. Try
before the
imagepng()
call.在 GD 和 GD 方面,什么对我有帮助? ImageMagick,用于获取最终要覆盖的背景颜色的十六进制/RGB 代码。然后,使用它作为“背景”颜色。旋转后,将该颜色转换为透明。然后,一旦进行叠加,小的抗锯齿边缘就会看起来平滑。
What helped for me, in both GD & ImageMagick, is to get the hex/rgb codes for the color of the background you're eventually going to overlay upon. Then, use that as your "background" color. After it's rotated, translate that color to transparent. Then, the little anti-aliased edges will look smooth once you do the overlay.