基本操作

117 3~4 min

截图当前屏幕

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