mss(Multiple Screen Shots)是一个用于屏幕截图的高性能库。它比pyautogui更快,因为它直接与底层API交互。
MSS (Multiple Screenshots Simple) 是一个用于截屏的 Python 库,它可以实现全屏或部分屏幕的截图。以下是使用 MSS 实现截屏的代码示例:
首先,安装 MSS 库:
pip install mss
然后,您可以使用以下代码实现全屏或部分屏幕截图:
from mss import mss
from PIL import Image
import numpy as np
def take_screenshot(file_name, region=None):
with mss() as sct:
if region is None:
# 全屏截图
screenshot = sct.shot(output=file_name)
else:
# 部分屏幕截图
monitor = {"top": region[1], "left": region[0],
"width": region[2], "height": region[3]}
screenshot = sct.grab(monitor)
# 将截图保存为文件
img = Image.fromarray(np.array(screenshot))
img.save(file_name)
print(f"截图已保存为 {file_name}")
# 全屏截图
take_screenshot("full_screen.png")
# 部分屏幕截图 (左上角坐标 (100, 100),宽度 500,高度 300)
take_screenshot("partial_screen.png", (100, 100, 500, 300))
这段代码定义了一个 take_screenshot 函数,它可以进行全屏或部分屏幕截图:
如果不提供 region 参数,函数将进行全屏截图。
如果提供 region 参数,函数将截取指定区域的图像。region 参数是一个元组,格式为 (left, top, width, height),分别表示截图区域的左上角 x 坐标、左上角 y 坐标、宽度和高度。
(左上角坐标 (100, 100),宽度 500,高度 300)
take_screenshot(“partial_screen.png”, (100, 100, 500, 300))
截屏第二个屏幕
import mss
import mss.tools
with mss.mss() as sct:
monitor = sct.monitors[1]
screenshot = sct.shot(mon=monitor, output="screenshot.png")
print(f"屏幕截图已保存为 {screenshot}")