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