Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Cách cập nhật hình ảnh trên Canvas Tkinter?


Gói PIL hoặc Pillow trong Python cung cấp cách xử lý hình ảnh trong chương trình. Chúng ta có thể mở hình ảnh, thao tác hình ảnh cho các mục đích khác nhau, và sử dụng để trực quan hóa dữ liệu. Để hiển thị hình ảnh trong ứng dụng, chúng ta thường tham chiếu đến widget Canvas. Vì widget Canvas cung cấp nhiều chức năng để thêm hình ảnh và đối tượng vào ứng dụng, chúng ta có thể dùng nó để hiển thị hình ảnh.

Để thay đổi một hình ảnh cụ thể, chúng ta có thể cấu hình canvas bằng cách sử dụng constructor itemconfig(). Nó nhận các file hình ảnh cần cập nhật và hiển thị chúng trên cửa sổ.

Ví dụ

Đối với ví dụ này, hãy sử dụng ba hình ảnh tùy chọn và lưu chúng trong cùng thư mục dự án.

# Import thư viện cần thiết
from tkinter import *
from tkinter import ttk
from PIL import Image, ImageTk

# Tạo instance của frame tkinter
win = Tk()

# Thiết lập geometry
win.geometry("750x400")

# Định nghĩa hàm cập nhật hình ảnh
def update_image():
    canvas.itemconfig(image_container, image=img2)

# Tạo canvas và thêm hình ảnh vào
canvas = Canvas(win, width=650, height=350)
canvas.pack()

# Tạo nút bấm để cập nhật hình ảnh canvas
button = ttk.Button(win, text="Update", command=lambda: update_image())
button.pack()

# Mở hình ảnh trong biến
img1 = PhotoImage(file="logo.png")
img2 = PhotoImage(file="logo2.png")
img3 = PhotoImage(file="logo3.png")

# Thêm hình ảnh vào canvas
image_container = canvas.create_image(0, 0, anchor="nw", image=img1)

win.mainloop()

Kết quả

Chạy code trên sẽ hiển thị một cửa sổ với canvas và nút bấm để cập nhật hình ảnh canvas.

Cách cập nhật hình ảnh trên Canvas Tkinter?

Bây giờ, nhấn nút "Update" để thay đổi hình ảnh.

Cách cập nhật hình ảnh trên Canvas Tkinter?