Skip to main content
 首页 » 编程设计

python之使用区域加速 pyautogui screenshot()

2024年08月19日30me-sa

我正在尝试加快 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')