Python tikinter.PhotoImage和Pil.ImageTk.PhotoImage的PhotoImage有什么不同
我按照教程在ImageTK GUI上设置图像打开按钮Python tikinter.PhotoImage和Pil.ImageTk.PhotoImage的PhotoImage有什么不同,python,tkinter,Python,Tkinter,我按照教程在ImageTK GUI上设置图像打开按钮 from tkinter import * from tkinter.ttk import * import cv2 from PIL import ImageTk,Image # creating tkinter window root = Tk() # Adding widgets to the root window Label(root, text = 'GeeksforGeeks', font =( 'Verda
from tkinter import *
from tkinter.ttk import *
import cv2
from PIL import ImageTk,Image
# creating tkinter window
root = Tk()
# Adding widgets to the root window
Label(root, text = 'GeeksforGeeks', font =(
'Verdana', 15)).pack(side = TOP, pady = 10)
# if use from tkinter.PhotoImage gor problem******
# photo = PhotoImage(Image.open("icon/homebutton.jpeg")) # **** Rise Problem
# Use from Pil
photo = ImageTk.PhotoImage(Image.open("icon/homebutton.jpeg"))
Button(root, text = 'Click Me !', image = photo).pack(side = BOTTOM)
mainloop()
如果我在注释“上升问题”的行中使用PhotoImage函数,我就得到了问题
TypeError: __str__ returned non-string (type JpegImageFile)
Tkinter的
PhotoImage
需要一个关键字参数-file=
指定打开的文件,或者data=
指定原始图像数据。当您尝试使用位置参数时,它会被解释为图像的内部名称,而这通常不是您所关心的。在任何情况下,它都不会将PIL图像
作为参数。PIL的PhotoImage
与PILImage
s一起工作,并且支持的图像文件格式比Tkinter直接支持的格式多得多。