如何使精灵的部分透明?

时间:2015-10-27 14:22:54

标签: kivy

我在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也必须如此,但我不能让它发挥作用。 我希望有人能解释它是如何完成的。感谢。

2 个答案:

答案 0 :(得分:1)

jpg格式不支持透明度。你应该使用一种格式,比如png。

答案 1 :(得分:0)

我终于找到了一种让精灵的一部分变得透明的方法。 我不能说我理解发生了什么,但如果图像是GIF(不是PNG),可以使用GIMP(免费绘图程序)。 添加Alpha通道,删除应该透明的部分并将文件导出为GIF。然后它工作。 PNG文件也应该起作用但不起作用(至少对我而言)。也许是因为我在平板电脑上使用QPython来运行Kivy文件。