Python Tkinter create_imageで画像が表示されないとき

はじめに

環境:Python 3.10.1

create_imageは、create_image(<水平中心位置>, <垂直中心位置>, image=<画像>)

でCanvasに任意の画像を表示するメソッドです。

このとき、<画像>は、与え方はいろいろありますが、PILのImageTkを使用すると以下のようになります。

from PIL import ImageTk
img = ImageTk.PhotoImage(file="tmp.png")

サンプルコード

from PIL import ImageTk
import tkinter

app = tkinter.Tk()
app.title("App Title")

img = ImageTk.PhotoImage(file="tmp.png")
image = tkinter.Canvas(
    app,
    width = 500,
    height = 100,
    bg = "white",
)
image.create_image(
    250, 50,
    image=img,  # こっちはうまくいく。
    # image=ImageTk.PhotoImage(file="tmp.png"),  # こうするとうまくいかない。
)
image.pack()

app.mainloop()

コメント

タイトルとURLをコピーしました