我正在尝试浏览图像文件并使用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()
答案 0 :(得分:1)
首先,您没有在方法中保留图像的参考,可能导致该图像,您的图像根本不显示。
关于调整大小,您可以使用PIL.Image.resize()
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)