Я пытаюсь упаковать код, отвечающий за открытие, изменяя размеры изображений в функцию, так как я буду выполнять это действие много раз.У меня есть пара строк, которые необходимы для отображения изображения в графическом интерфейсе:
img = Image.open("images/cola.jpg")
img = img.resize((40, 40), Image.ANTIALIAS)
photoImg = ImageTk.PhotoImage(img)
ColaLabel = ttk.Label(gui, image=photoImg)
ColaLabel.grid(column=6, row=0)
Colala = ttk.Label(gui, text='30')
Colala.grid(column=5, row=0)
И графический интерфейс выглядит так:

Я пытался сделать функцию следующим образом:
def createGUIProduct(path: str):
img = Image.open(path)
img = img.resize((40, 40), Image.ANTIALIAS)
return ImageTk.PhotoImage(img)
И вызывая ее следующим образом:
ColaLabel = ttk.Label(gui, image=createGUIProduct("images/cola.jpg"))
ColaLabel.grid(column=6, row=0)
Colala = ttk.Label(gui, text='30')
Colala.grid(column=5, row=0)
И результат:

РЕДАКТИРОВАТЬ:
После функции изменения:
def createGUIProduct(path: str):
global photoImage
img = Image.open(path)
img = img.resize((40, 40), Image.ANTIALIAS)
photoImage = ImageTk.PhotoImage(img)
return photoImage
И вызов двух продуктов одним и тем же способом:
ColaLabel = ttk.Label(gui, image=createGUIProduct("images/cola.jpg"))
ColaLabel.grid(column=6, row=0)
Colala = ttk.Label(gui, text='30')
Colala.grid(column=5, row=0)
WodaLabel = ttk.Label(gui, image=createGUIProduct("images/woda.jpg"))
WodaLabel.grid(column=8, row=0)
Wodala = ttk.Label(gui, text='31')
Wodala.grid(column=7, row=0)
Только один показ:
