我想问一些关于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,图像”当我尝试时(目前,我正在尝试使用枕头,顺便说一句),ImageTk似乎不可用。
任何帮助都将不胜感激。
由于文件路径中的相对文件路径
或非英语字符
可能会发生此错误,因此我制作了此函数,该函数在windows和任何类型的文件路径中都非常有效:
def loadrelimages(relativepath):
from PIL import ImageTk, Image
import os
directory_path = os.path.dirname(__file__)
file_path = os.path.join(directory_path, relativepath)
img = ImageTk.PhotoImage(Image.open(file_path.replace('\\',"/")))
return img
例如,装载<代码>照片_2021-08-16_18-44-28。与此代码位于同一目录中的jpg:
from tkinter import *
import os
def loadrelimages(relativepath):
from PIL import ImageTk, Image
import os
directory_path = os.path.dirname(__file__)
file_path = os.path.join(directory_path, relativepath)
img = ImageTk.PhotoImage(Image.open(file_path.replace('\\',"/")))
return img
root = Tk()
canvas = Canvas(root, width=500, height=500)
canvas.pack()
loadedimage=loadrelimages('photo_2021-08-16_18-44-28.jpg')
canvas.create_image(250, 250, image=loadedimage)
root.mainloop()
试试这个!!!!
Chuck G提供的解决方案奏效了。我不知道为什么我最初不能导入ImageTk,但最终还是成功了。
from PIL import ImageTk
>
您必须安装PIL
:pip安装枕头
。
如果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)
我想把一张jpg图片放到tkinter画布上。tkinter给了我这个错误: 无法识别图像文件中的数据 我使用文档中的代码: png图像也是如此。甚至尝试将图像放入标签小部件,但也出现了相同的错误。发生了什么? 我在Mac上使用Python3。Python文件和图像位于同一文件夹中。
我有以下问题。我生成。使用外部应用程序的GIF文件。对我来说,GIF看起来不错,我可以毫无问题地打开它们。然而,使用 要将图像添加到Tkinter标签,会出现以下错误: Tcl错误:无法识别图像文件“C:\Users\D8W\Python\hoang\combi ne\u model\u neu\test\u bauteile\SQTR-VO\prev\u F45\u SQTR.GIF”中的数据
问题内容: 我在Visual Studio 2013中运行Python 2.7。以前在Spyder中运行该代码正常,但是在运行时: 我最终遇到以下错误: 为什么会这样,我该如何解决? 如建议的那样,我已经在我的Python 2.7中使用了Pillow安装程序。但是奇怪的是,我最终得到了这个: 都失败了! 问题答案: 我有一个同样的问题。 代替 解决了这个问题
即使我的图像文件和代码在同一个文件夹中,我也会得到_tkinter。 我已经经历了一些其他类似的堆栈溢出问题,但没有成功;没有使用PIL,我如何解决这个问题?这是我的代码: 先谢谢你。
问题内容: 我一直在寻找网络上图像识别数字的资源。我发现许多链接提供了有关该主题的大量资源。但不幸的是,这比提供帮助更令人困惑,我不知道从哪里开始。 我有一个带有5个数字的图像,没有打扰(没有验证码或类似的东西)。数字在白色背景上为黑色,以标准字体书写。 我的第一步是分离数字。我当前使用的算法非常简单,它只是检查一列是否完全为白色,因此是否为空格。然后,它会修剪每个字符,以使其周围没有白色边框。这
突然之间,网络Storm对我来说不认识Javascript了。 如果我添加这样的文件: 之后我在IDE中看到的是: 如果我刷新,重新启动Webstorm,它仍然无法识别文件!网络Storm已无法使用!