The Image element displays an image in your window provided they are in PNG, GIF, PPM/PGM format. JPGs cannot be shown because tkinter does not naively support JPGs. You can use the Python Imaging Library (PIL) package to convert your image to PNG prior to calling PySimpleGUI if your images are in JPG format.
A general discussion of images and image formats used in PySimpleGUI can be found in the images section.
If events are enabled for the
Image element, then the element's key will be returned as an event when the image is clicked with the left mouse button.
No entry is in the values dictionary for
Specifying the Image
Reminder - As discussed in the section on image formats, the tkinter port of PySimpleGUI only supports PNG & GIF format, not JPG.
There are 3 parameters that can be used to specify the image to be displayed. You can also create the
Image in your layout without specifying any image to be initially displayed, and then use the
update method later to display an image.
These 3 parameters specify the image:
source- A "union" of the other 2 parameters. The type passed in will determine if it's a filename, Base64 string or raw image
filename- A string representing the location on disk of your image
data- Either a Base64 encoded byte string or a byte string (an unencoded "raw" image)
While you cannot resize your image to an arbitrary size, you can increase or decrease the size of your image to be displayed. For example, if you're displaying the built-in emoji used in the example layout above, you'll find that this image has pixel size of 56 x 56 pixels. The
size parameter will not scale up/down the image to a specific size, for example (200,200) pixels. The
size parameter changes the size the
Image element will use in your layout, but will not change the scale of the image itself.
zoom Parameters - Rough Scaling
Two parameters can be used to provide a rough scaling of your image:
subsample- decreases the image scale by multiplying the size by 1/
zoom- increaes the image scale by multiplying the size by
For example, if you want your image to be 1/2 the size it normally has, set
subsample=2. If you want the image to be twice the size, use
zoom=2. You can combine these 2 parameters as well. To get 2/3 the original size, set
This layout demonstrates using these scaling parameters:
Scaling to Specific Size
To resize to a specific pixel dimension, you can use the PIL package. There are numerous Demo Programs that provide code demonstrating this operation.
Images As Buttons
You can easily get a button-like behavior by enabling events for an
Image element. If events are enabled, then when you click the image, you'll receive and event back from
windows.read that equal to the
key for the