2015-10-27 51 views
0

我在www.reddit.com/r/kivy發佈了以下問題,但沒有人能幫助我。如何使精靈的某些部分透明?

比方說,我有一個紅色正方形,我想要一個洞,以便通過這個洞看到背景。這應該是可能的,但我找不到方法。我發現了下面的代碼片段,但它不起作用。那是因爲它根本無法工作,或者因爲我試圖使它在三星Galaxy Tab 3上工作?我希望有人能夠啓發我,預先感謝你。

from PIL import Image 

img = Image.open('img.jpg') 
img = img.convert("RGBA") 
datas = img.getdata() 

newData = [] 
for item in datas: 
    if item[0] == 255 and item[1] == 255 and item[2] == 255: 
     newData.append((255, 255, 255, 0)) 
    else: 
     newData.append(item) 

img.putdata(newData) 
img.save("img2.jpg") 

用C++和DirectX沒有問題,可以設置一種特定的顏色是透明的,白色t.ex,使得在子畫面的所有白色像素中沒有畫出。 對於Kivy來說,這一定是可以的,但我無法讓它工作。 我希望有人能解釋它是如何完成的。謝謝。

回答

1

jpg格式不支持透明度。你應該使用像png這樣的格式。

+0

對不起,我應該提到,我也嘗試過與PNG,也沒有工作。你能告訴我該怎麼辦? – Zaphod

0

我終於找到了一種方法,使精靈的一部分透明。 我不能說我明白髮生了什麼,但如果圖像是GIF(不是PNG),可以使用GIMP(免費繪圖程序)。 添加一個Alpha通道,刪除應該是透明的部分並將該文件作爲GIF導出。然後它工作。 PNG文件應該可以工作,但不會(至少對我而言)。也許是因爲我在我的平板電腦上使用QPython來運行Kivy文件。