【发布时间】:2021-02-09 08:45:25
【问题描述】:
我正在编写一个图像处理程序,需要在单击 Tkinter 按钮后获取图像作为用户输入。
这是我的代码:
root = tk.Tk()
#root.withdraw()
def file():
file = askopenfile(mode ='r', filetypes =[('JPG File', '*.jpg'),('PNG File','*.png')], encoding="utf8")
if file is not None:
content = file.read()
print(content)
open = tk.Button(root, text ="Open Image",command= lambda : file())
open.pack()
root.mainloop()
错误:
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Users\Admin\AppData\Local\Programs\Python\Python37\lib\tkinter\__init__.py", line 1705, in __call__
return self.func(*args)
File "C:/Users/Admin/.PyCharmCE2019.1/config/scratches/scratch_3.py", line 18, in <lambda>
open = tk.Button(root, text ="Open Image",command= lambda : file())
File "C:/Users/Admin/.PyCharmCE2019.1/config/scratches/scratch_3.py", line 12, in file
file = askopenfile(mode ='r', filetypes =[('JPG File', '*.jpg'),('PNG File','*.png')], encoding="utf8")
File "C:\Users\Admin\AppData\Local\Programs\Python\Python37\lib\tkinter\filedialog.py", line 396, in askopenfile
filename = Open(**options).show()
File "C:\Users\Admin\AppData\Local\Programs\Python\Python37\lib\tkinter\commondialog.py", line 43, in show
s = w.tk.call(self.command, *w._options(self.options))
_tkinter.TclError: bad option "-encoding": must be -defaultextension, -filetypes, -initialdir, -initialfile, -multiple, -parent, -title, or -typevariable
【问题讨论】:
-
正如错误所说,
encoding不是askopenfile()的有效选项。您还需要使用二进制模式“rb”打开图像文件。
标签: python image image-processing tkinter file-upload