旋转PNG图像,并保持透明背景

发布于 2024-11-05 15:58:06 字数 302 浏览 0 评论 0原文

我想旋转图像,但我似乎无法维护图像本身。

这就是我所拥有的:

// 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

情栀口红 2024-11-12 15:58:06

你必须特别强制 GD 保持透明度。 尝试。

imagesavealpha($file, TRUE);

imagepng() 调用之前

You have to specifically force GD to preserve transparency. Try

imagesavealpha($file, TRUE);

before the imagepng() call.

裂开嘴轻声笑有多痛 2024-11-12 15:58:06

在 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文