如何在 macOS 上更快地截屏?

4
import pyautogui
import time

def test_time():
    t1 = time.time()
    for i in range(100):
        img = pyautogui.screenshot()
    t2 = time.time()
    print(t2-t1)
test_time()

我正在尝试创建一个机器人,它检查像素并在它们上面单击,但是截图需要太长时间(100张截图需要14.93秒),是否有更快的方法?


2
你可以使用 ffmpeg 更快地进行操作,参见此处... https://dev59.com/7bnoa4cB1Zd3GeqPN023#60266466 - Mark Setchell
是的,我想那是最好的选择。 - user13566332
2个回答

1

根据平台不同,您可以通过提供一个region关键字参数来加快调用速度,例如以下内容:

im = pyautogui.screenshot(region=(20, 20, 80, 80))

在Linux上,这个区域将用于底层截图过程(当只需要一个较小的区域时,这可以显著加快进程),但在Windows和macOS上,这并没有帮助。
您可以查看其他库的更具体解决方案,包括MSS,您可以在这里阅读文档。它有一个简单的API,并且非常快速。

同样的问题,甚至比第一次(17.7秒)还要花更多时间。 - user13566332
1
你尝试使用 MSS 指定一个区域了吗? - xavc

-3
在 macOS 上截屏请按 cmd+shift+4。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接