2011-05-06 152 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