tkinterで’PhotoImage’ object has no attribute ‘_PhotoImage__photo’

tkinterでjpgを表示しようとした時に表題のエラー。

image = Image.open(image_path)
image = ImageTk.PhotoImage(file=image)

AttributeError: 'PhotoImage' object has no attribute '_PhotoImage__photo'

公式ドキュメントを見てみる。

classPIL.ImageTk.PhotoImage(image=Nonesize=None**kw)

Parameters:

image – Either a PIL image, or a mode string. If a mode string is used, a size must also be given.

file – A filename to load the image from (using Image.open(file))

https://pillow.readthedocs.io/en/stable/index.html

file= を指定すると、Image.openで読み込まれる仕様。

上述のコードだと、file=と書いてしまったがために Image.open ( Image.open ) のような入れ子構造になってしまってエラーが出た可能性が高い。

下記のいずれかに書き直し、tkinterでjpgを表示することが出来た。

image = Image.open(image_path)
image = ImageTk.PhotoImage(image)
image = ImageTk.PhotoImage(file=image_path)

参考

ImageTk Module
The ImageTk module contains support to create and modify Tkinter BitmapImage and PhotoImage objects from PIL images. For...

コメント

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