python - 如何在 macOS 上更快地截取屏幕截图?
问题描述
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 秒)有没有更快的方法来做到这一点?
解决方案
根据平台的不同,您可以通过提供region
关键字参数来加快调用速度,如下所示:
im = pyautogui.screenshot(region=(20, 20, 80, 80))
在 Linux 上,该区域将用于底层屏幕截图过程(当只需要较小的区域时,这可以显着加快该过程),但在 Windows 和 macOS 上这将无济于事。
您可以使用其他库(包括MSS )查看更具体的解决方案,您可以在此处阅读文档。它有一个简单的 API,而且速度非常快。
推荐阅读
- spring - MockMvcResultMatchers 接受不兼容的内容类型
- scala - 我试图在一个使用 REST API 的项目中使用 scala 插入 websocket API。当我编译程序时,会发生此错误
- python - 如何在后台运行python脚本?
- python - 将多个值从数据框中转换为方程式以返回结果
- javascript - 有没有更好的方法来避免这种多维数据的重复?
- ruby-on-rails - Rails:如何使用 en.yml 文件中的句号 (.) 标点符号?
- python - 编写一个名为 get_numbers() 的函数,它返回一个整数列表
- caching - Why is two lines that differ in their address by precisely 65,536 bytes cannot be stored in the cache at the same?
- svg - SVG Gradients with ObjectBoundingBox units and gradientTransform with rotation
- windows - Electron openItem 打开相同路径的新窗口