截图当前屏幕
import mss
# 实例化mss对象,并重命名为sct,固定写法
with mss.mss() as sct:
# shot方法表示截屏,output参数表示存放的文件名
sct.shot(output='screenshot.png')
截图指定区域
import mss.tools
# 定义截屏区域
area = {"left": 0, "top": 0, "width": 400, "height": 100}
# 截屏并保存为PNG文件
with mss.mss() as sct:
grab = sct.grab(area)
mss.tools.to_png(grab.rgb, grab.size, output='screenshot.png')
使用opencv显示截图
import mss.tools
import cv2
import numpy as np
# 定义截屏区域
area = {"left": 0, "top": 0, "width": 400, "height": 100}
# 截屏并保存为PNG文件
with mss.mss() as sct:
grab = sct.grab(area)
# 将grab对象转换为NumPy数组
img = np.array(grab)
# 使用OpenCV显示图像
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
连续截屏输出视频
import mss.tools
import cv2
import numpy as np
# 定义截屏区域
area = {"left": 0, "top": 0, "width": 800, "height": 600}
# 截屏并保存为PNG文件
with mss.mss() as sct:
while True:
grab = sct.grab(area)
# 将grab对象转换为NumPy数组
img = np.array(grab)
# 使用OpenCV显示图像
cv2.imshow('image', img)
# cv2.waitKey 函数会暂停程序执行,等待特定毫秒数以检查是否有键盘输入。函数的参数是等待的时间(以毫秒为单位),例如 cv2.waitKey(1) 将等待 1 毫秒
if cv2.waitKey(1) & 0xFF == ord('q'):
cv2.destroyAllWindows()
break