2017-09-24 127 views
0

我正在尝试使用画布小部件在python 3.5中使用tkinter创建一个简单的游戏。对于这个游戏,我需要能够使用透明(PNG)图像。这里是我的代码:在浅色帆布python上绘制png图像

from PIL import ImageTk 
from tkinter import Tk, Canvas 

root = Tk() 
im = ImageTk.PhotoImage(file="test.png") 
canvas = Canvas(root, width=900, height=900) 
canvas.pack() 
canvasImage = canvas.create_image(0, 0, image=im, anchor="nw") 
root.mainloop() 

的问题是,尽管没有得到任何错误,我不能加载图像具有透明背景,但我可以不带透明背景加载PNG图像。

回答

0

你应该试试这个:

from tkinter import * 
root = Tk() 
canvas = Canvas(root, width=500, height=500) 
canvas.pack() 
img = PhotoImage(file='path/your_image.png') 
canvas.create_image(250, 250, image=img) 
root.mainloop() 

输出here

+0

不要使用通配符的进口,而不是做'进口的Tkinter作为tk' –

+0

@Coal_在这种情况下通配符导入罚款;永远不要使用它并不是一条规则。 – SneakyTurtle

+0

对于这种特殊情况,我同意你的看法,但是如果你需要一个可扩展的代码库并且有很多交叉依赖关系,通配符导入是非常糟糕的。我的意思是,现在更容易忘记它们,而不必在以后为每个对象预先加上'tk'。 –