将pil与canvas一起用于python tkinter提供空白图像
你能帮我吗 我正在尝试用python制作一个软件。我使用tkinter和pil进行培训将pil与canvas一起用于python tkinter提供空白图像,python,canvas,tkinter,python-imaging-library,Python,Canvas,Tkinter,Python Imaging Library,你能帮我吗 我正在尝试用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), f
我希望能够使用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”)
,这会创建一个带有我想要的灰色矩形的图像
有人看到我的缺点了吗
非常感谢您的帮助。发生这种情况是因为对“im”的引用正在丢失-如果您将“im”更改为“self.im”,我想您会发现它是有效的
当然,您可以选择自己保存参考资料的方式。有关完整的解释,请参见谢谢,我以前从未见过这个问题(我以前做过很多java)。多谢各位。