self.tk.call(('image', 'create', imgtype, name,) + options) _tkinter.TclError: couldn't recognize data in image file "image1.png" - Unable to load png

self.tk.call(('image', 'create', imgtype, name,) + options) _tkinter.TclError: couldn't recognize data in image file "image1.png" - Unable to load png

我正在尝试使用 Python 和 Tkinter 制作一个应用程序,但我无法加载图像,具体来说是 png。相反,我收到了这么长的错误:

 File "C:\Users\username\AppData\Local\Programs\Python\Python310\lib\tkinter\__init__.py", line 4038, in __init__
    self.tk.call(('image', 'create', imgtype, name,) + options)
_tkinter.TclError: couldn't recognize data in image file "image1.png".

有人可以帮我解决这个问题吗?以下是可能导致错误的代码行:

cycle1IMG = tk.PhotoImage(file="image1.png")

def openNewWindow1():
    newWindow = Toplevel(master)
    newWindow.title("Cycle 1")
    newWindow.geometry("750x500")
    Label(newWindow, text="Cycle 1", image= cycle1IMG).pack()

cycle1 =tk.Button(
    root,
    text="Cycle 1",
    command=openNewWindow1
    
)
cycle1.place(x=500,y=300)

根据对该问题的评论,您似乎使用了一个 .webp 文件并将其重命名为 .png。这不会更改文件的内部内容,这就是 tkinter 报告错误的原因:你告诉它打开一个 .png 文件,但文件的内容不是 png 格式。

Tkinter 不支持 webp。您必须使用其他一些库来读取文件并将其转换为 tkinter 支持的格式(例如:pillow