根据这个答案,mss 应该非常快,但是没有更多的 mss.mss.get_pixels() 方法和 mss.mss.grab() 给我的结果很差(在 1440p 屏幕上为 grab() 0.074s) . 大多数时候,我使用 PIL.ImageGrab.grab() 或 pyautogui.screenshot() 得到几乎相同的结果。这是正常的吗?
我尝试安装 32 位 Python 看看是不是 64 位版本的问题,但没有结果
我还做了一个简单的基准测试
import mss
import PIL
import pyautogui
from time import time
sct = mss.mss()
m = {
'left': 0,
'top': 0,
'width': 2440,
'height': 1440
}
t = time()
data = sct.grab(m)
t = time() - t
print("MSS grab(): {}".format(t))
t = time()
data = PIL.ImageGrab.grab()
t = time() - t
print("PIL grab(): {}".format(t))
t = time()
data = pyautogui.screenshot()
t = time() - t
print("pyautogui screenshot(): {}".format(t))
结果如下:
MSS grab(): 0.07446518135070801
PIL grab(): 0.10441708564758301
pyautogui screenshot(): 0.07911845970153809
编辑:MSS 做得比其他所有东西都好,但我目前正在尝试使用 openCV 和 70 毫秒来获得一帧还不够快