How to update an image in a Tkinter Canvas?


Canvas can be used to play with images, animating objects, 3D modeling, displaying text, and many more. Moreover, we can display an image file using the create_image() constructor.

Following this, let us build an application that can update the canvas images locally. We can add a button to trigger the event which when pressed will change the canvas image.

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

Use three images of your choice and save them in the same project directory.

Example

#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 Image" button to update the canvas Image.

Updated on: 16-Apr-2021

9K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements