pyautogui學習5:截圖功能詳解

screenshot()函數

調用screenshot()將返回一個圖像對象(詳情請參閱Pillow或PIL模塊文檔)。傳遞一個文件名字符串將把截圖保存到文件中,並將其作爲圖像對象返回。

>>> import pyautogui
>>> im1 = pyautogui.screenshot()
>>> im2 = pyautogui.screenshot('my_screenshot.png')

在一個1920 x 1080的屏幕上,screenshot()函數花費大約100毫秒—它不是很快,但也不慢。

如果您不想要整個屏幕的截圖,也可以使用可選的region關鍵字參數。您可以通過一個四整數元組的左,頂部,寬度,和高度的地區捕捉:

>>> import pyautogui
>>> im = pyautogui.screenshot(region=(0,0, 300, 400))

定位功能:

當你打開一個界面,想點擊某個按鈕,但是你不知道這個按鈕確切的屏幕座標,而且可能每次打開界面的位置都會不同,或者在不同的電腦上的打開也不一樣,導致每次都要重新查找座標。那麼定位功能就可以幫助解決這個問題。

比如要點擊一個按鈕,就先截這個按鈕的圖片,保存到一個固定的目錄下

x,y = pyautogui.locateCenterOnScreen('screenshot.png')    # 如果這麼寫就表示在當前目錄下

x和y就取得了這張圖片在界面上的中心點座標,用這個座標就可以執行點擊等操作了。

如果沒有找到圖片的話,會報錯:

TypeError: 'NoneType' object is not iterable

 

像素匹配:

要獲取屏幕截圖中像素的RGB顏色,請使用圖像對象的getpixel()方法:

>>> import pyautogui
>>> im = pyautogui.screenshot()
>>> im.getpixel((100, 200))
(130, 135, 144)

或者作爲單個函數調用pixel() PyAutoGUI函數:

>>> import pyautogui
>>> pix = pyautogui.pixel(100, 200)
>>> pix
RGB(red=130, green=135, blue=144)
>>> pix[0]
130
>>> pix.red
130

如果只需要驗證單個像素是否與給定像素匹配,則調用pixelMatchesColor()函數,將它所代表的顏色的X座標、Y座標和RGB元組傳遞給它:

>>> import pyautogui
>>> pyautogui.pixelMatchesColor(100, 200, (130, 135, 144))
True
>>> pyautogui.pixelMatchesColor(100, 200, (0, 0, 0))
False

可選的tolerance關鍵字參數指定在仍然匹配的情況下,紅、綠、藍三個值的變化幅度:

>>> import pyautogui
>>> pyautogui.pixelMatchesColor(100, 200, (130, 135, 144))
True
>>> pyautogui.pixelMatchesColor(100, 200, (140, 125, 134))
False
>>> pyautogui.pixelMatchesColor(100, 200, (140, 125, 134), tolerance=10)
True

 

發佈了215 篇原創文章 · 獲贊 9 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章