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