Как заставить мою программу на python делать скриншоты быстрее? - PullRequest
0 голосов
/ 21 февраля 2019

Я работал над этим сценарием, который щелкает там, где пиксель определенного цвета находится на экране, но я столкнулся с проблемой, когда я повторяю это, он делает скриншоты, но только около 12 во время 30-секундного цикла, когдаДОЛЖНО быть 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

1 Ответ

0 голосов
/ 24 февраля 2019

Во-первых, вы должны переписать, чтобы не создавать новый класс MSS на каждой итерации, и удалить спящий:

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 и работать непосредственно с необработанными данными.

...