2011-05-06 167 views
6

我想在PHP中制作非常简单的ISO引擎,我尝试在正确的位置渲染图像,然后绘制图像,因为某些原因,它们应该是透明的。 PNG文件具有透明度通道,我正在使用以下测试代码:http://pastebin.com/TXk4LkJ8代码只是草稿。PHP GD - 透明区域变黑

文件只是一个块的3个面,其维度如下:top - 44x22;双方:23x34

谢谢你的帮助,我希望这个问题很清楚。

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

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

+2

如果 “ISO” 是不明确的:http://en.wikipedia.org/wiki/Isometric_projection – thirtydot 2011-05-06 15:09:00

回答

12

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

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

我试过了,没有帮助,抱歉。 – Sebi 2011-05-06 16:00:40

+0

只有我提供GIF时,它才能正常工作。谢谢! – Sebi 2011-05-06 16:27:02

3

This answer表明了两两件事:

  • imagealphablending应设置为false,以保持alpha通道
  • 应设置颜色,你要透明(在这种情况下,黑色)透明:
$black = imagecolorallocate($image, 0, 0, 0); 
imagecolortransparent($image, $black); 

这些帮助吗?

+0

不幸的是,它没有。我的图片有alpha通道,背景不是黑色。这里是其中之一:http://dl.dropbox.com/u/10530011/obrazki/stone_t.png – Sebi 2011-05-06 15:36:57