pysimplegui_image_resize.py

#!/usr/bin/python3
# ===================================================================
# Displaying an image using PySimpleGUI
# -------------------------------------------------------------------
# also try sg.Image('image file',size=(300,300))
# -------------------------------------------------------------------
# From: stackoverflow.com/questions/67079155/displaying-an-image-
#       using-pysimplegui-without-having-to-use-an-event-listener
# ===================================================================

from PIL import Image, ImageTk
import PySimpleGUI as sg

filename = 'example.png'

# ---- Resize PNG file to size (300, 300)

size = (300, 300)
im = Image.open(filename)
im = im.resize(size, resample=Image.BICUBIC)

sg.theme('DarkGreen3')

layout = [
    [sg.Image(size=(300, 300), key='-IMAGE-')],
]
window = sg.Window('Window Title',layout,margins=(0,0),finalize=True)

# ---- Convert im to ImageTk.PhotoImage after window finalized

image = ImageTk.PhotoImage(image=im)

# ---- update image in sg.Image

window['-IMAGE-'].update(data=image)

while True:

    event, values = window.read()
    if event == sg.WIN_CLOSED:
        break

window.close()