在使用 PIL 加载图像并将其显示在由 Tkinter 创建的窗口中时,我在非常基本的层面上遗漏了一些东西。我想要做的最简单的形式是:

import Tkinter as TK
from PIL import Image, ImageTk

im = Image.open("C:\\tinycat.jpg")
tkIm = ImageTk.PhotoImage(im)
tkIm.pack()
TK.mainloop()

当我尝试运行上面的代码时,我得到以下信息:
RuntimeError: Too early to create image
Exception AttributeError: "PhotoImage instance has no attribute
'_PhotoImage__photo'" in <bound method PhotoImage.__del__ of
<PIL.ImageTk.PhotoImage instance at 0x00C00030>> ignored

我已经确认该文件存在并且可以在图像编辑器中打开,并且可以使用 im.show() 显示它。我错过了什么?

最佳答案

在调用 ImageTk.PhotoImage() 之前,必须实例化 Tkinter:

TK.Tk()

关于python - 如何在 Tkinter 中使用 PIL?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1236540/

10-11 07:26