Ich habe ein Skript in Python3.5 mit dem Modul pyautogui geschrieben, um einen Bereich auf dem Bildschirm zu notieren und dann in vier Quadranten aufzuteilen. Ich mache das, um die Suche zu beschleunigen, während nachfolgende Skripte laufen. Um zu testen, ob ich Quadranten bekomme, habe ich einen Aufruf des Screenshot-Befehls in der Funktion getQuad1. Wenn es ausgeführt wird, erhält es den gesamten Bildschirm, nicht nur den von mir angegebenen Quadranten.pyautogui im Vollbildmodus, wenn die Region als
Ich bin mir nicht sicher, ob ich meine Algebra verschmutzt habe oder ob es das Modul ist, das agiert.
import pyautogui
def areaSetup(dimTop, dimBot):
workSpace = getWorkSpace(dimTop , dimBot)
W, H, Hh, Wh = getWaHWorkSpace(workSpace)
quad1 = getQuad1(workSpace,W, H, Hh, Wh)
quad2 = getQuad2(workSpace,W, H, Hh, Wh)
quad3 = getQuad3(workSpace,W, H, Hh, Wh)
quad4 = getQuad4(workSpace,W, H, Hh, Wh)
return workSpace, quad1, quad2, quad3, quad4
def getWorkSpace(browTopLeft, browBotRight):# gets the full area of workspace
top = pyautogui.locateOnScreen(browTopLeft , grayscale=True)
while top is None:
top = pyautogui.locateOnScreen(browTopLeft , grayscale=True)
print (top)
bottom = pyautogui.locateOnScreen(browBotRight , grayscale=True)
while bottom is None:
bottom = pyautogui.locateOnScreen(browBotRight , grayscale=True)
print (bottom)
x1, y1, h1, w1 = top
x2, y2, h2, w2 = bottom
#x2 = x2+w2
#y2 = y2+h2
print ("initial print" , x1, y1, x2, y2)
workSpace = x1, y1, x2, y2
print ("Workspace" , workSpace)
return workSpace
def getWaHWorkSpace(workSpace):
x1, y1, x2, y2 = workSpace #break it into four parts again
W = int(x2 - x1) #get the height
H = int(y2 - y1) #get the width
Hh = int(0.5 * H) #get mid point of height
Wh = int(0.5 * W) #get mid point of width
print ("W and H" , W, H, Hh, Wh)
return W, H, Hh, Wh
def getQuad1(workSpace,W, H, Hh, Wh): #North West Quad
x1, y1, x2, y2 = workSpace #break it into four parts again
q1x1 = int(x1)
q1y1 = int(y1)
q1y2 = int(y1+Hh)
q1x2 = int(x1+Wh)
quad1 = q1x1, q1y1, Wh, Hh
print("quad1", quad1)
pyautogui.screenshot('quad1.png' , region=quad1)#SCREENSHOT TEST
return quad1
Allgemeines areaSetup mit der linken oberen Ecke des Browserfensters und der unteren rechten Ecke des gleichen Fensters laufen (das ausgelegt ist mit Browser-Formularen zur Geige). getWorkSpace wird ausgeführt und ruft den vollständigen Arbeitsbereich ab, im Wesentlichen die Abmessungen des Browserfensters. Dann gibt es ein Skript namens getWaHWorkSpace, das die Breite, die Höhe und die Hälften von jedem zur anschließenden Verwendung berechnet.
Ich habe dann eine Funktion namens getQuad1, die die Mathematik benötigt, um den oberen linken Quadranten des Bildschirms zu bestimmen. Es gibt drei weitere Funktionen, die die anderen Quadranten erhalten, sie sind identisch mit der Funktion getQuad1, die für die verwendeten Variablen gespeichert ist.
Irgendwelche Ratschläge oder Gedanken in Bezug auf diese würde sehr geschätzt werden!