前提・実現したいこと
画像パスからボタン上に埋め込みをしたいと考えております。
jpgでの表示を行おうとしておりますが、画像パスを絶対パスと連結させる時点でいまいちうまくいきません。よろしくお願いします。
C:\dir\Anaconda3\python.exe C:/dir/test.py Traceback (most recent call last): File "C:/dir/test.py", line 17, in <module> photo = ImageTk.PhotoImage(img_path, master=root) File "C:\dir\Anaconda3\lib\site-packages\PIL\ImageTk.py", line 120, in __init__ mode = Image.getmodebase(mode) File "C:\dir\Anaconda3\lib\site-packages\PIL\Image.py", line 323, in getmodebase return ImageMode.getmode(mode).basemode File "C:\dir\Anaconda3\lib\site-packages\PIL\ImageMode.py", line 55, in getmode return _modes[mode] KeyError: 'C:\dir\testImage.jpg' Exception ignored in: <function PhotoImage.__del__ at 0x000002245FF2D048> Traceback (most recent call last): File "C:\dir\Anaconda3\lib\site-packages\PIL\ImageTk.py", line 130, in __del__ name = self.__photo.name AttributeError: 'PhotoImage' object has no attribute '_PhotoImage__photo'
該当のソースコード
python
1ソースコード 2# -*- coding: utf-8 -*- 3from PIL import Image, ImageTk 4import os 5import tkinter as tk 6 7root = tk.Tk() 8root.title("test") 9root.geometry("500x400") 10img_path = os.path.abspath(os.path.join(os.path.dirname(__file__), "testImage.jpg")) 11photo = ImageTk.PhotoImage(img_path, master=root) 12b = tk.Button(root, text="", image=photo) 13b.pack() 14 15root.mainloop()
試したこと
直接絶対パスを書き込むことに関しては成功しております。
この先、リスト化した画像パスを絶対パスと連結して画像を複数表示していきたいと考えております。
ファイルの中身にrを付けて\を無視するように行ったりしましたが、効果なしです。
初心者なので突破が難しく、心がおれそうです…。
補足情報(FW/ツールのバージョンなど)
python3.7
tkinter
回答1件
あなたの回答
tips
プレビュー