PyAutoGui 圖片識別+定位+截圖函數文檔


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)的生成器


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM