PyAutoGUI 屏幕截图(2)
“定位”函数总结
“定位”函数,都从屏幕的左上角(或图像)开始,然后往右,然后向下寻找。参数可以是:
-
locateOnScreen(image, grayscale=False)
返回屏幕上第一个找到的图像实例的坐标(left, top, width, height)
。如果未在屏幕上找到,则引发ImageNotFoundException
。 -
locateCenterOnScreen(image, grayscale=False)
返回屏幕上第一个找到的图像实例中心的(x,y)
坐标。如果未在屏幕上找到,则引发ImageNotFoundException
。 -
locateAllOnScreen(image, grayscale=False)
返回一个生成器,该生成器包含在屏幕上找到图像的位置生成元组(left, top, width, height)
。 -
locate(needleImage, haystackImage, grayscale=False)
返回在haystackImage中
找到的needleImage
的(left, top, width, height)
坐标。如果未找到,则引发ImageNotFoundException
。 -
locateAll(needleImage, haystackImage, grayscale=False)
返回一个生成器,该生成器包含在haystackImage中
找到的needleImage
的(left, top, width, height)
坐标。如果未找到,则引发ImageNotFoundException
。
“LocationAll”
函数可以用于for
循环或传递给list()
:
>>> import pyautogui
>>> for pos in pyautogui.locateAllOnScreen('someButton.png')
... print(pos)
...
(1101, 252, 50, 50)
(59, 481, 50, 50)
(1395, 640, 50, 50)
(1838, 676, 50, 50)
>>> list(pyautogui.locateAllOnScreen('someButton.png'))
[(1101, 252, 50, 50), (59, 481, 50, 50), (1395, 640, 50, 50), (1838, 676, 50, 50)]
这些“Location”
函数相当昂贵;它们可以运行整整一秒钟。加速它们的最好方法是传递一个区域参数(left, top, width, height)
的4个整数元组,只搜索屏幕的一个较小的区域,而不是整个屏幕:
>>> import pyautogui
>>> pyautogui.locateOnScreen('someButton.png', region=(0,0, 300, 400))