How do I update images on a Tkinter Canvas?

TkinterPythonGUI-Programming

The PIL or Pillow package in Python provides a way to process the images in a program. We can open an image, manipulate the image for different use, and can use it to visualize the data as well. To display an image in an application, we generally refer to the Canvas widget. As canvas widget provides many functionalities to add images and objects in an application, we can use it to display the images.

To change a particular image, we can configure the canvas by using the itemconfig() constructor. It takes image files that need to be updated and displays them on the window.

Example

For this example, use three images of your choice and save them in the same project directory.

# Import the required library
from tkinter import *
from tkinter import ttk
from PIL import Image, ImageTk

# Create an instance of tkinter frame
win=Tk()

# Set the geometry
win.geometry("750x400")

# Define function to update the image
def update_image():
   canvas.itemconfig(image_container,image=img2)

# Create a canvas and add the image into it
canvas=Canvas(win, width=650, height=350)
canvas.pack()

# Create a button to update the canvas image
button=ttk.Button(win, text="Update", command=lambda:update_image())
button.pack()

# Open an Image in a Variable
img1=PhotoImage(file="logo.png")
img2=PhotoImage(file="logo2.png")
img3=PhotoImage(file="logo3.png")

# Add image to the canvas
image_container=canvas.create_image(0,0, anchor="nw",image=img1)

win.mainloop()

Output

Running the above code will display a window with a canvas and a button to update the canvas image.

Now, click the "Update" button to change the image.

raja
Published on 05-Aug-2021 14:08:06
Advertisements