PHP GD - 透明区域变黑

发布于 2024-11-05 16:10:36 字数 511 浏览 1 评论 0原文

我正在尝试在 PHP 中制作非常简单的 ISO 引擎,我尝试在正确的位置、顺序等进行渲染是成功的,但是绘制的图像由于某种原因在应该是透明的地方是黑色的。 PNG 文件具有透明通道,我正在使用以下测试代码: http://pastebin.com/TXk4LkJ8 代码是只是草稿。

文件只是一个块的 3 个面,尺寸如下:顶部 - 44x22; side:23x34

感谢您的帮助,我希望问题足够清楚。

编辑:这是问题: http://dl.dropbox.com/u/ 10530011/obrazki/isofail.png

编辑:[已解决] 由于某种原因,我必须将图像保存为 GIF 才能使其正常工作。 感谢您的帮助。

I am trying to make very simple ISO engine in PHP, my attempts to render in correct place, order etc are succeding however the images drawn, for some reason are black where it should be transparent. PNG files have transparency channel and I am using following test code: http://pastebin.com/TXk4LkJ8 The code is just rough draft.

Files are just 3 faces of an block with dimensions as follows: top - 44x22; sides:23x34

Thank you for your help and I hope the question is clear enough.

Edit: Here is the problem: http://dl.dropbox.com/u/10530011/obrazki/isofail.png

Edit: [SOLVED] For some reason I had to save the images as GIF to make it work.
Thank you for your help.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

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

发布评论

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

评论(2

衣神在巴黎 2024-11-12 16:10:36

您应该保存 png 图像之前调用这两个函数,imagealphablending( )imagesavealpha()

imagealphablending( $image, false );
imagesavealpha( $image, true );

You should call these two functions before saving the png image, imagealphablending() and imagesavealpha():

imagealphablending( $image, false );
imagesavealpha( $image, true );
神爱温柔 2024-11-12 16:10:36

这个答案表明了两件事:

  • imagealphablending 应设置为 false 以保留 alpha 通道
  • 您应该将想要透明的颜色(在本例中为黑色)设置为透明:
$black = imagecolorallocate($image, 0, 0, 0);
imagecolortransparent($image, $black);

这些有帮助吗?

This answer suggests two things:

  • imagealphablending should be set to false in order to preserve alpha channels
  • You should set the colour you want transparent (in this case black) as transparent:
$black = imagecolorallocate($image, 0, 0, 0);
imagecolortransparent($image, $black);

Do these help?

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