我想在python3中寻求有关tkinter的帮助。 我似乎无法使用以下代码在标签中显示jpeg图像文件:
def changephoto(self):
self.tmpimgpath = filedialog.askopenfilename(initialdir=os.getcwd())
self.installimagepath.set(self.tmpimgpath)
self.selectedpicture = PhotoImage(file=self.installimagepath.get())
self.PictureLabel.configure(image=self.selectedpicture)
它可以很好地处理png图像,但是当我尝试加载jpg图像时,我只能得到以下错误:
_tkinter.TclError: couldn't recognize data in image file
我经历了所有类似的问题,但它们似乎都回答了同样的问题:“从PIL导入ImageTk,图像” 当我尝试这样做(目前,我正在尝试使用枕头btw)时,ImageTk似乎不可用。
任何帮助将不胜感激。
答案 0 :(得分:0)
您必须安装PIL
:pip install pillow
。
如果pip
未成功安装pillow
,则可能需要尝试pip3
或pip3.7
(使用bash查看具有哪些选项)
您可以使用ImageTk
打开图像:
import os
import tkinter as tk
from tkinter import filedialog
from PIL import ImageTk
def changephoto():
root = tk.Tk()
PictureLabel= tk.Label(root)
PictureLabel.pack()
tmpimgpath = filedialog.askopenfilename(initialdir=os.getcwd())
selectedpicture= ImageTk.PhotoImage(file=tmpimgpath)
PictureLabel.configure(image=selectedpicture)
答案 1 :(得分:0)
Chuck G提供的解决方案有效。我不知道为什么我最初无法导入ImageTk,但是最终还是可以正常工作。
from PIL import ImageTk