如何在运行时加载图像 tkinter?



我正在尝试浏览图像文件并使用tkinter将其加载到标签中。我无法加载新浏览的图像。我只是想在标签中显示图像的预览,现在它正在加载完整图像,因此只捕获了图像的某些部分。如何减小标签中加载的图像大小,以便预览完整图像标签。 源代码:

root = Tk()
def browsefunc():
filename = fd.askopenfilename()
print(filename)
ss=ImageTk.PhotoImage(Image.open(filename))
panel.configure(image=ss)
file=r"C:/img.jpg"
img = ImageTk.PhotoImage(Image.open(file))
browsebutton = Button(root, text="Browse", command=browsefunc, justify ="center")
panel = Label(root,height="500",width="500", image = img,justify="left")
panel.pack(side = "top", expand = "yes")
browsebutton.pack(side="bottom")
root.mainloop()

首先,您没有在方法中保留对图像的引用,这可能会导致图像根本不显示。

关于调整大小,您可以使用 PIL。图像大小((

def browsefunc():
filename = fd.askopenfilename()
print(filename)
si = Image.open(filename)
h = panel.winfo_height() # label's current height
w = panel.winfo_width() # label's current width
si = si.resize((h,w)) 
ss = ImageTk.PhotoImage(si)
panel.image=ss # keeping a reference!!
panel.configure(image=ss)

最新更新