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.

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