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

Hiển thị ảnh/screenshot trong Tkinter không cần lưu file

Tkinter dùng PIL/Pillow để xử lý ảnh. Tạo app chụp màn hình và hiển thị ngay trong cửa sổ mới (Toplevel) không lưu file.

Các bước

  • Import thư viện: tkinter, pyautogui, PIL.ImageTk, PIL.Image
  • Tạo button chụp màn hình
  • Định nghĩa hàm chụp: xác định coords, region
  • Tạo Toplevel window, Label hiển thị ảnh
  • Pack và hiển thị

Ví dụ

from tkinter import *
import pyautogui
from PIL import ImageTk, Image

win = Tk()
win.geometry("700x350")

def take_screenshot():
    x, y = 500, 500
    im1 = pyautogui.screenshot(region=(x, y, 700, 300))
    top = Toplevel(win)
    im1 = ImageTk.PhotoImage(im1)
    image1 = Label(top, image=im1)
    image1.image = im1  # giữ reference
    image1.place(x=0, y=0)

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

Kết quả

Cửa sổ chính có button. Click → chụp vùng (500,500) kích thước 700x300 → hiển thị trong Toplevel mới.

Hiển thị ảnh/screenshot trong Tkinter không cần lưu file Hiển thị ảnh/screenshot trong Tkinter không cần lưu file

Lưu ý: Gán image1.image = im1 để giữ reference, tránh garbage collection xóa ảnh. Cần cài pip install pillow pyautogui.