PHP GD - 透明区域变黑

时间:2011-05-06 15:04:40

标签: php image gd iso

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

文件只是一个块的3个面,其尺寸如下:top - 44x22;边:23x34

感谢您的帮助,我希望这个问题足够明确。

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

编辑:[已解决]出于某种原因,我不得不将图片保存为GIF以使其正常工作。 谢谢你的帮助。

2 个答案:

答案 0 :(得分:12)

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

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

答案 1 :(得分:3)

This answer提出了两件事:

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

这些帮助吗?