你能帮我吗?
我正在尝试用python制作软件。我正在使用tkinter和pil进行培训。
我希望能够使用PIL创建一个空图像,在其上绘制然后在tkinter中显示。
现在我有这个
def redraw(self):
self.canvas.delete("all")
image = Image.new ('RGB', (100, 100))
draw = ImageDraw.Draw(image)
draw.rectangle ((0,0,100,100), fill = (20,20,20) )
im = ImageTk.PhotoImage (image)
self.canvas.create_rectangle (0,0, 100, 100) #appears
self.canvas.create_image (0,0, image = im) #does not
几乎像创建的图像一样透明。
即使我添加 image.save("image.png", "PNG")
也会创建具有所需灰色矩形的图像。
有人看见我的缺点了吗?
非常感谢您的帮助。
答案 0 :(得分:1)
之所以会这样,是因为丢失了对“ im”的引用-如果将“ im”更改为“ self.im”,我想您会发现它可行。
当然,您可以选择自己的方式来保存参考。有关完整说明,请参见http://effbot.org/pyfaq/why-do-my-tkinter-images-not-appear.htm