Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将pil与canvas一起用于python tkinter提供空白图像_Python_Canvas_Tkinter_Python Imaging Library - Fatal编程技术网

将pil与canvas一起用于python tkinter提供空白图像

将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

你能帮我吗

我正在尝试用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”)
,这会创建一个带有我想要的灰色矩形的图像

有人看到我的缺点了吗


非常感谢您的帮助。

发生这种情况是因为对“im”的引用正在丢失-如果您将“im”更改为“self.im”,我想您会发现它是有效的


当然,您可以选择自己保存参考资料的方式。有关完整的解释,请参见

谢谢,我以前从未见过这个问题(我以前做过很多java)。多谢各位。