如何在 Python Tkinter 窗口中显示图像/屏幕截图而不保存?

tkinterpythongui-programming更新于 2025/9/14 22:04:17

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

   # 创建顶层窗口
   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"它将捕获宽度为 700px、高度为 300 px 的屏幕,从坐标 (x=500, y=500) 开始。


相关文章


有用资源