用mss截图,mss截图后保存,并释放内存,再读取图片,用tkimage获取,重新设置图片尺寸,显示图片
时间: 2024-05-14 16:18:25 浏览: 13
以下是使用Python实现的代码:
```python
import mss
import numpy
from PIL import Image, ImageTk
import tkinter as tk
# 定义图片尺寸
WIDTH = 800
HEIGHT = 600
# 创建tkinter窗口
root = tk.Tk()
root.title("截图并显示图片")
root.geometry("{}x{}".format(WIDTH, HEIGHT))
# 创建画布
canvas = tk.Canvas(root, width=WIDTH, height=HEIGHT)
canvas.pack()
# 设置mss截图参数
monitor = {"top": 0, "left": 0, "width": WIDTH, "height": HEIGHT}
# 截图并保存,释放内存
with mss.mss() as sct:
sct_img = sct.grab(monitor)
img = numpy.array(sct_img)
img = Image.fromarray(img)
img.save("screenshot.png")
del img
# 读取图片并调整尺寸
img = Image.open("screenshot.png")
img = img.resize((WIDTH, HEIGHT))
# 将图片转换为tkinter可用的格式
tkimg = ImageTk.PhotoImage(img)
# 显示图片
canvas.create_image(0, 0, anchor=tk.NW, image=tkimg)
# 运行tkinter主循环
root.mainloop()
```
在运行代码后,将会打开一个窗口,显示当前屏幕的截图并调整为指定大小。