我试图加快pyautogui中的截图功能,因为我只需要屏幕的一小部分。区域变量应该是这个a.k.a. screenshot(region =(0,0,400,300))的方法。然而,在做了一些测试之后,我发现无论区域的大小,它总是花费相同的时间来截取屏幕截图(~250ms)。
此外,当将屏幕截图保存到文件屏幕截图(' dummy.png',region =(0,0,400,300))时,区域变量似乎并不重要,无论如何都会保存整个屏幕。关于为什么这不能正常工作的任何想法?
在OS X上运行
答案 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')