如何在Python Tkinter窗口中显示图像/屏幕截图而无需保存?
Tkinter是一个标准的Python库,用于创建和开发基于GUI的应用程序。要显示图像,我们使用PIL或Pillow库。
假设我们想创建一个应用程序,它将窗口的屏幕截图并在另一个窗口中显示捕获的图像。为了实现这个目的,我们可以按照以下步骤进行 –
- 导入所需的库。
-
创建一个通用按钮以截取屏幕截图。
-
定义一个函数以截取屏幕截图。
-
在给定的函数中,通过 coords 和 region 定义我们想要截取屏幕截图的区域。
-
创建一个Toplevel窗口,并在其中定义一个带有标签图像的控件。
-
将小部件打包并显示输出图像。
示例
#导入所需的库
from tkinter import *
import pyautogui
from PIL import ImageTk, Image
#创建 tknter框架或窗口的实例
win = Tk()
#设置窗口的大小
win.geometry("700x350")
#定义一个函数以截取屏幕截图
def take_screenshot():
x = 500
y = 500
#在给定的corrds中截取屏幕截图
im1 = pyautogui.screenshot(region=(x, y, 700, 300))
#创建一个Toplevel窗口
top = Toplevel(win)
im1 = ImageTk.PhotoImage(im1)
#将图像添加到标签小部件中
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()
输出
当我们运行代码时,它将显示一个带有截屏按钮的窗口。
现在,单击“Take ScreenShot”按钮,它将捕获从坐标(x = 500,y = 500)开始的大小为700像素宽和300像素高的屏幕。