首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ImageTk.Photoimage未按预期工作

ImageTk.Photoimage未按预期工作
EN

Stack Overflow用户
提问于 2020-11-03 13:24:17
回答 1查看 64关注 0票数 0

我想让用户使用askopenfile()打开一个文件,并将图像分配给一个变量代码:

代码语言:javascript
复制
from tkinter import *
from tkinter import filedialog
from PIL import ImageTk, Image
root = Tk()
root.title("Forms")


def new_window():
    root.filename = filedialog.askopenfilename(title="Select a file", filetypes=[("Png Files", "*.png")])
    print(root.filename)
    img = ImageTk.PhotoImage(open(root.filename))


btn = Button(text="Click here to open file .", command=new_window).pack()
root.mainloop()

但我得到了一个错误。输出为:

Tkinter回调中出现C:\Users\Imtiaz\PycharmProjects\pythonProject\venv\Scripts\python.exe C:/Users/Imtiaz/PycharmProjects/pythonProject/mbox.py C:/Users/Imtiaz/Pictures/Roblox/RobloxScreenShot20201102_204504924.png异常

代码语言:javascript
复制
Traceback (most recent call last):
  File "C:\Users\Imtiaz\pyver\py390\lib\tkinter\__init__.py", line 1885, in __call__
    return self.func(*args)
  File "C:\Users\Imtiaz\PycharmProjects\pythonProject\mbox.py", line 11, in new_window
    img = ImageTk.PhotoImage(open(root.filename))
  File "C:\Users\Imtiaz\PycharmProjects\pythonProject\venv\lib\site-packages\PIL\ImageTk.py", line 108, in __init__
    mode = Image.getmodebase(mode)
  File "C:\Users\Imtiaz\PycharmProjects\pythonProject\venv\lib\site-packages\PIL\Image.py", line 300, in getmodebase
    return ImageMode.getmode(mode).basemode
  File "C:\Users\Imtiaz\PycharmProjects\pythonProject\venv\lib\site-packages\PIL\ImageMode.py", line 64, in getmode
    return _modes[mode]
KeyError: <_io.TextIOWrapper name='C:/Users/Imtiaz/Pictures/Roblox/RobloxScreenShot20201102_204504924.png' mode='r' encoding='cp1252'>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-03 13:31:33

答:多亏了acw1668,我才知道问题出在哪里。错误发生在:

代码语言:javascript
复制
img = ImageTk.PhotoImage(open(root.filename))

应该是:ImageTk.PhotoImage(file=root.filename)ImageTk.PhotoImage(Image.open(root.filename))

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64657210

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档