4
PILを使用してTkinterキャンバスに画像を埋め込もうとしていますが、何らかの理由でそれが表示されません。何か案は?PILを使用してTkinter Canvasウィジェットに画像を埋め込む
エラーまたは警告はありません。ちょうど空のTkウィンドウ。
マイコード:
import Tkinter
from PIL import ImageTk, Image
class image_manip(Tkinter.Tk):
def __init__(self,parent):
Tkinter.Tk.__init__(self,parent)
self.ImbImage = Tkinter.Canvas(self)
self.ImbImage.pack()
i = ImageTk.PhotoImage(Image.open('test.png'))
self.ImbImage.create_image(0, 0, image=i)
def run():
image_manip(None).mainloop()
if __name__ == "__main__":
run()
これはありがたいです。 – rectangletangle
@ブライアンオークリーそれも私の正確な問題でした。どうやって知ったの?次の行に画像が参照されていても、その画像はいつも素早くガベージコレクションされますか?それは「自己」とはどのような違いがありますか? – theJollySin
@theJollySin: 'self'の違いは、' i'がローカル変数であるということです。その関数が終了すると、 'i'はガベージコレクションされる可能性があります。 'self'では、オブジェクトの寿命の参照が存在します。 –