我想问一些关于tkinter的帮助,在python3中,我似乎不能使用下面的代码在标签中显示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
我查了所有我能找到的类似问题,但它们似乎都回答了同样的问题:“from PIL import ImageTk,Image”当我尝试这样做时(目前,我正在尝试使用pillow,顺便说一句),ImageTk似乎不可用。
任何帮助都将不胜感激。
3条答案
按热度按时间46qrfjad1#
1.您必须安装
PIL
:pip install pillow
.如果
pip
未成功安装pillow
,您可能必须尝试pip3
或pip3.7
(使用bash查看您有哪些选项)1.您可以使用
ImageTk
打开图像:but5z9lq2#
Chuck G提供的解决方案起作用了。我不知道为什么我最初不能导入ImageTk,但最终还是起作用了。
icomxhvb3#
这个错误可能会发生,因为
relative file path
或non-English
字符在文件路径,所以我做了这个函数,它在Windows中工作得很好,并与任何类型的文件路径:例如,加载
photo_2021-08-16_18-44-28.jpg
,它与以下代码位于同一目录:试试这个!