用区域加速pyautogui screenshot()

时间:2018-01-08 04:24:31

标签: python screenshot pyautogui

我试图加快pyautogui中的截图功能,因为我只需要屏幕的一小部分。区域变量应该是这个a.k.a. screenshot(region =(0,0,400,300))的方法。然而,在做了一些测试之后,我发现无论区域的大小,它总是花费相同的时间来截取屏幕截图(~250ms)。

此外,当将屏幕截图保存到文件屏幕截图(' dummy.png',region =(0,0,400,300))时,区域变量似乎并不重要,无论如何都会保存整个屏幕。关于为什么这不能正常工作的任何想法?

在OS X上运行

1 个答案:

答案 0 :(得分:1)

在macOS上,PyAutoGUI只调用screencapture实用程序。所以它很慢。 你可以尝试MSS,它会很快,不需要其他工具/模块。这是您可以尝试的示例(从documentation复制):

import mss
import mss.tools


with mss.mss() as sct:
    # The screen part to capture
    region = {'top': 0, 'left': 0, 'width': 400, 'height': 300}

    # Grab the data
    img = sct.grab(region)

    # Save to the picture file
    mss.tools.to_png(img.rgb, img.size, output='dummy.png')