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

用户3201928

我正在尝试使用 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.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)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章