Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

วิธีปรับขนาดรูปพื้นหลังให้เท่าขนาดหน้าต่างใน Tkinter


เพื่อทำงานกับรูปภาพ ไลบรารี Python มีแพ็กเกจ Pillow หรือ PIL ที่ช่วยให้แอปพลิเคชันนำเข้ารูปภาพและดำเนินการต่างๆ ได้

สมมติว่าเราต้องการปรับขนาดรูปภาพแบบไดนามิกตามขนาดหน้าต่าง ในกรณีนี้ ต้องทำตามขั้นตอน:

  • เปิดไฟล์รูปภาพในแอปพลิเคชัน Tkinter
  • สร้าง Canvas Widget และใช้ create_image(**options) วางรูปภาพที่โหลดใน canvas
  • กำหนดฟังก์ชันปรับขนาดรูปภาพที่โหลด
  • ผูกฟังก์ชันกับการกำหนดค่าหน้าต่างหลัก

ตัวอย่าง

# นำเข้าไลบรารีที่จำเป็น
from tkinter import *
from PIL import ImageTk, Image

# สร้างอินสแตนซ์ของ Tkinter Frame
win = Tk()
# กำหนดขนาดของ Tkinter Frame
win.geometry("700x450")

# เปิดไฟล์รูปภาพ
bg = ImageTk.PhotoImage(file="tutorialspoint.png")

# สร้าง Canvas
canvas = Canvas(win, width=700, height=3500)
canvas.pack(fill=BOTH, expand=True)

# เพิ่มรูปภาพใน Canvas
canvas.create_image(0, 0, image=bg, anchor='nw')

# ฟังก์ชันปรับขนาดหน้าต่าง
def resize_image(e):
    global image, resized, image2
    # เปิดรูปเพื่อปรับขนาด
    image = Image.open("tutorialspoint.png")
    # ปรับขนาดรูปตาม width และ height ของ root
    resized = image.resize((e.width, e.height), Image.ANTIALIAS)
    image2 = ImageTk.PhotoImage(resized)
    canvas.create_image(0, 0, image=image2, anchor='nw')

# ผูกฟังก์ชันกับการกำหนดค่าหน้าต่างหลัก
win.bind("", resize_image)

win.mainloop()


ผลลัพธ์

การรันโค้ดจะแสดงหน้าต่างที่มีรูปภาพซึ่งสามารถปรับขนาดได้แบบไดนามิก

วิธีปรับขนาดรูปพื้นหลังให้เท่าขนาดหน้าต่างใน Tkinter