图片未在 Python、Tkinter、PIL 中呈现

Image not Rendering in Python, Tkinter, PIL

PIL 照片未渲染

代码:

from tkinter import *
from PIL import ImageTk, Image

root = Tk()


def resize_image(file_dir):
    full_dir = f'{file_dir}'
    unresized_pic = Image.open(full_dir)
    resized = unresized_pic.resize((100, 300), Image.ANTIALIAS)
    final_pic = ImageTk.PhotoImage(resized)
    return final_pic


root.geometry('500x500')
# photo = PhotoImage(file='assests/forest01.png')
my_picture = Label(root, image=resize_image('assests/forest01.png'))
my_picture.pack()

root.mainloop()

resized_image() 函数在调用时应该 return 调整大小的图片,但是它不起作用。我该如何解决?

改为如下使用:

编辑:有关为什么这在函数中不起作用的参考,请参阅here,正如@Cool Cloud 所指出的。离开函数后,照片“是一个被垃圾收集的局部变量”。

photo = resize_image('assests/forest01.png')
my_picture = Label(root, image=photo)