Computer >> Máy Tính >  >> Lập trình >> Python

Làm cách nào để thay đổi kích thước hình nền thành kích thước cửa sổ trong Tkinter?

Để làm việc với hình ảnh, Thư viện Python cung cấp gói Pillow hoặc PIL cho phép các ứng dụng nhập hình ảnh và thực hiện các thao tác khác nhau trên chúng.

Giả sử rằng chúng ta muốn thay đổi kích thước một hình ảnh theo cách linh hoạt trong cửa sổ của nó. Trong trường hợp đó, chúng tôi phải làm theo các bước sau -

  • Mở Hình ảnh trong Ứng dụng Tkinter.

  • Tạo Tiện ích con Canvas và sử dụng create_image (** tùy chọn) để đặt hình ảnh đã tải vào canvas.

  • Xác định một chức năng để thay đổi kích thước hình ảnh đã tải.

  • Liên kết chức năng với cấu hình cửa sổ mẹ.

Ví dụ

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

# Create an instance of Tkinter Frame
win = Tk()

# Set the geometry of Tkinter Frame
win.geometry("700x450")

# Open the Image File
bg = ImageTk.PhotoImage(file="tutorialspoint.png")

# Create a Canvas
canvas = Canvas(win, width=700, height=3500)
canvas.pack(fill=BOTH, expand=True)

# Add Image inside the Canvas
canvas.create_image(0, 0, image=bg, anchor='nw')

# Function to resize the window
def resize_image(e):
   global image, resized, image2
   # open image to resize it
   image = Image.open("tutorialspoint.png")
   # resize the image with width and height of root
   resized = image.resize((e.width, e.height), Image.ANTIALIAS)

   image2 = ImageTk.PhotoImage(resized)
   canvas.create_image(0, 0, image=image2, anchor='nw')

# Bind the function to configure the parent window
win.bind("<Configure>", resize_image)
win.mainloop()


Đầu ra

Chạy đoạn mã trên sẽ hiển thị một cửa sổ chứa hình ảnh có thể được thay đổi kích thước động.

Làm cách nào để thay đổi kích thước hình nền thành kích thước cửa sổ trong Tkinter?