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

จะปรับขนาดภาพพื้นหลังเป็นขนาดหน้าต่างใน Tkinter ได้อย่างไร?


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

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

  • เปิดรูปภาพในแอปพลิเคชัน Tkinter

  • สร้างวิดเจ็ต Canvas และใช้ create_image(**options) เพื่อวางภาพที่โหลดไว้บนผืนผ้าใบ

  • กำหนดฟังก์ชันเพื่อปรับขนาดภาพที่โหลด

  • ผูกฟังก์ชันกับการกำหนดค่าหน้าต่างหลัก

ตัวอย่าง

# 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()


ผลลัพธ์

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

จะปรับขนาดภาพพื้นหลังเป็นขนาดหน้าต่างใน Tkinter ได้อย่างไร?