我在www.reddit.com/r/kivy上发布了以下问题,但没有人能帮助我。
假设我有一个红色的正方形,我想在它上面打一个洞,这样背景就可以通过这个洞看到。应该可以做到这一点,但我找不到办法。我找到了以下代码片段,但它不起作用。这是因为它根本不能工作,还是因为我试图让它在三星Galaxy Tab3上工作?希望有人能开导我,提前谢谢。
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来说也是可能的,但我不能让它工作。我希望有人能解释一下它是如何做到的。谢谢。
发布于 2015-10-27 22:25:35
jpg格式不支持透明度。您应该使用这样的格式,如png。
发布于 2015-11-01 22:29:08
我终于找到了一种让精灵的一部分变得透明的方法。我不能说我理解发生了什么,但如果图像是GIF (不是PNG),可以使用GIMP (免费绘图程序)。添加alpha通道,删除应该是透明的部分,然后将文件导出为GIF。然后它就起作用了。PNG-files应该也能用,但不能用(至少对我来说是这样)。也许是因为我在平板电脑上使用QPython来运行Kivy文件。
https://stackoverflow.com/questions/33370517
复制相似问题