tkinterでjpgを表示しようとした時に表題のエラー。
image = Image.open(image_path)
image = ImageTk.PhotoImage(file=image)
AttributeError: 'PhotoImage' object has no attribute '_PhotoImage__photo'
公式ドキュメントを見てみる。
class
PIL.ImageTk.PhotoImage
(image=None, size=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
https://pillow.readthedocs.io/en/stable/index.htmlImage.open(file)
)
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...
コメント