import pyautogui as auto
屏幕截圖()函數
screenshot()
將返回 Image 對象(有關詳細信息,請參閱枕頭或PIL模塊文檔)。傳遞文件名的字符串將屏幕快照保存到文件中,並將其作為Image對象返回。
# 有一個可選的 region 關鍵字參數,如果不希望看到整個屏幕的截圖。
# 可以傳遞區域的左、頂、寬和高的四個整數元組來捕獲:
pic_1 = auto.screenshot()
pic_2 = auto.screenshot('my_screenshot.png') #在1920 x 1080屏幕上,screenshot()函數大約需要100毫秒
pic_3 = auto.screenshot("my_screenshot.png ",region=(0,0, 300, 400))
定位函數 (非常重要)
在#1920 x 1080屏幕上,定位函數調用大約需要1或2秒 ,不適用於游戲腳本調用,原因是太慢
locateOnScreen()
例如,假設計算器應用程序在您的計算機上運行,如下所示:

# 當啟動計算器界面的時候,這時您不能直接調用moveTo()和click()函數,如果您不知道計算器按鈕的確切屏幕坐標。
# 每次啟動時,計算器都會出現在一個稍微不同的地方,因此每次都需要重新查找坐標。
# 但是,如果您有該按鈕的圖像,例如7按鈕的圖像:

# 就直接用圖片識別功能定位它的屏幕坐標(是元組,左、上、右、下),這個返回結果(元組)也可以給center()函數方法,轉化成x,y的坐標值
# 如果屏幕上找不到圖像,locateOnScreen() 則返回結果為:None.
number7_location = auto.locateOnScreen('calc7key.png') #傳入按鈕的圖片
print(number7_location) # 返回屏幕所在位置
>>>(1416, 562, 50, 41)
x,y = auto.center(number7_location ) # 轉化為 x,y坐標
print(number7_location) #按鍵7的坐標是1441,582
>>> (1441, 582)
auto.click(number7_location)
# 點擊坐標,click()它是支持元組格式的坐標傳入的
#根據圖片識別定位x,y坐標(比較好用)
locateCenterOnScreen(image, grayscale=False)
返回找到的第一個截圖Image對象在屏幕上的中心坐標(x, y),如果沒找到返回None
auto.locateCenterOnScreen('1.png',grayscale=False)
# 參數grayscale是是否轉灰度
>>> (1441, 582)
locateAllOnScreen(image, grayscale=False)
# 返回找到的所有相同截圖Image對象在屏幕上的坐標,返回結果是(left, top, width, height)的‘生成器’
auto.locateAllOnScreen('xxx.png',grayscale=False) #遍歷找到屏幕上所有顯示為xxx的圖像對象坐標,轉灰度操作=關閉
locate(needleImage, haystackImage, grayscale=False)
auto.locate('xxx.png')
# 返回找到的第一個截圖Image對象在haystackImage里面的坐標(left, top, width, height),如果沒找到返回None
locateAll(needleImage, haystackImage, grayscale=False)
auto.locateAll('xxx.png')
# 返回找到的所有相同截圖Image對象在haystackImage里面的坐標(left, top, width, height)的生成器