python - 如何让我的 python 程序更快地截取屏幕截图?

标签 python python-3.x screenshot python-mss

我一直在研究这个脚本,它点击屏幕上某个颜色的像素的任何地方,但我遇到了一个问题,当我循环这个时它会截取屏幕截图,但在 30 秒的循环中只有大约 12 个程序应该需要 600 才能非常快速地点击像素。我迷路了

xx = 0
while xx <= 600:
    with mss.mss() as sct:
        region = {'top': 0, 'left': 0, 'width': 1920, 'height': 1080}
        imgg = sct.grab(region)
        img1 = mss.tools.to_png(imgg.rgb,imgg.size,output="C:/Users/yaahy/Desktop/scrnshotoutput/imageforgamehack"+str(xx)+".png")
        imgname = "C:/Users/yaahy/Desktop/scrnshotoutput/imageforgamehack"+str(xx)+".png"
    pxls = find_yellow_pixels(imgname)
    pyautogui.click(pxls[0],pxls[1])
    time.sleep(.05)
    xx = xx + 1

最佳答案

首先,您应该重写以不在每次迭代时都实例化一个新的 MSS 类,并删除 sleep :

import mss

with mss.mss() as sct:
    region = {'top': 0, 'left': 0, 'width': 1920, 'height': 1080}

    for xx in range(600):
        imgname = "C:/Users/yaahy/Desktop/scrnshotoutput/imageforgamehack" + str(xx) + ".png"
        imgg = sct.grab(region)
        img1 = mss.tools.to_png(imgg.rgb, imgg.size, output=imgname)
        # pxls = find_yellow_pixels(imgname)
        # pyautogui.click(pxls[0],pxls[1])

然后,正如评论者所建议的,您应该解释您想要实现的目标,或许您可以摆脱 PNG 创建并直接使用原始数据。

关于python - 如何让我的 python 程序更快地截取屏幕截图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54799005/

相关文章:

python-3.x - 在 Azure Functions 的脚本中导入 python-tabular 时出现错误

javascript - 如何可靠地实时重建 DOM 以进行协同浏览(镜像网页使用)

python - 非事件窗口截图 PrintWindow + win32gui

python - 使用 pyproject.toml 时 setuptools 未获取动态版本

遍历目录并读取文件信息的Python程序

python - 如何在 PyQt5 中按下时切换按钮文本

Python3。如何在上下文管理器中正确引发异常以从 with 运算符中处理它?

ios - 拍摄 AVPlayer 的屏幕截图但它适用于某些视频

python - 如何向 numpy 数组添加运动模糊

python - 是否在 tornado.web.RequestHandler 中初始化,每次请求时都会被调用/