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

Làm cách nào để hiển thị hình ảnh / ảnh chụp màn hình trong cửa sổ Python Tkinter mà không cần lưu nó?

Tkinter là một thư viện Python tiêu chuẩn được sử dụng để tạo và phát triển các ứng dụng dựa trên GUI. Để hiển thị hình ảnh, chúng tôi sử dụng thư viện PIL hoặc Pillow.

Giả sử rằng chúng tôi muốn tạo một ứng dụng sẽ chụp ảnh màn hình của cửa sổ và hiển thị hình ảnh đã chụp trong một cửa sổ khác. Để đạt được điều này, chúng ta có thể thực hiện theo các bước dưới đây -

  • Nhập các thư viện bắt buộc.

  • Tạo một nút chung để chụp ảnh màn hình.

  • Xác định một chức năng để chụp ảnh màn hình.

  • Trong hàm đã cho, hãy xác định coords vùng qua đó chúng tôi muốn chụp ảnh màn hình.

  • Tạo cửa sổ Toplevel và xác định hình ảnh nhãn trong đó.

  • Đóng gói tiện ích và hiển thị hình ảnh đầu ra.

Ví dụ

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

# Create an instance of tknter frame or window
win = Tk()

# Set the size of the window
win.geometry("700x350")


# Define a function to take the screenshot
def take_screenshot():
   x = 500
   y = 500
   # Take the screenshot in the given corrds
   im1 = pyautogui.screenshot(region=(x, y, 700, 300))

   # Create a toplevel window
   top = Toplevel(win)
   im1 = ImageTk.PhotoImage(im1)

   # Add the image in the label widget
   image1 = Label(top, image=im1)
   image1.image = im1
   image1.place(x=0, y=0)

Button(win, text='Take ScreenShot', command=take_screenshot).pack(padx=10, pady=10)

win.mainloop()

Đầu ra

Khi chúng tôi chạy mã, nó sẽ hiển thị một cửa sổ có nút để chụp ảnh màn hình.

Làm cách nào để hiển thị hình ảnh / ảnh chụp màn hình trong cửa sổ Python Tkinter mà không cần lưu nó?

Bây giờ, nhấp vào nút "Chụp ảnh màn hình" và nó sẽ chụp màn hình có kích thước rộng 700px và cao 300px, bắt đầu từ các tọa độ (x =500, y =500).

Làm cách nào để hiển thị hình ảnh / ảnh chụp màn hình trong cửa sổ Python Tkinter mà không cần lưu nó?