Не работает вывод изображения ImageTk Python

В общем-то элементарная задача на Python, но не могу решить: нужно изменить размер изображения и вывести его в окно в качестве аргумента объекта label:

import PIL
from PIL import Image
from PIL import ImageTk
....
part_image = Image.open("test.png")
scaled_imag = part_image.resize((300, 150), Image.LANCZOS)
img = ImageTk.PhotoImage(scaled_imag) 
label_pic_name = Label(window, image = img, borderwidth=2, relief="ridge")                           
label_pic_name.grid(row=2, column=1)

При запуске генерируется пустой объект lebel, размер которого соответствует размеру изображения, но самого изображения в нем нет.


Ответы (1 шт):

Автор решения: Павел Бурмистров

Изучил аналогичную проблему по ссылке, предоставленной @insolor в комментарии Действительно, дело оказалось в сборщике мусора и после добавления строки:

import PIL
from PIL import Image
from PIL import ImageTk
....

global img #<---Добавил вот эту строку
part_image = Image.open("test.png")
scaled_imag = part_image.resize((300, 150), Image.LANCZOS)
img = ImageTk.PhotoImage(scaled_imag) 
label_pic_name = Label(window, image = img, borderwidth=2, relief="ridge")                           
label_pic_name.grid(row=2, column=1)

все заработало как надо.

P.S. Я натыкался на приведенный пост и добавлял аналогичную строку, но по неопытности делал это для переменной "part_image", что не дало результата.

→ Ссылка