本文主要介绍 pyautogui
的 screenshot
和 locateCenterOnScreen
方法
本文仍有问题未解决
screenshot——截取图像,并且可以保存
pag.screenshot('文件路径', region=(left, top, width, height)
文件路径可以任意选择,如D:\code\kar.png
region
的范围意思是,从(left, top)开始——即(横坐标,纵坐标),宽度为width,高度为height
注意:
- pyautogui的x轴正方向水平向右,y轴正方向竖直向下
- 可以不写region
import pyautogui as pag
img1 = pag.screenshot() # 默认是截取全屏,并返回一个对象
img2 = pag.screenshot('kar.png', region=(0, 0, 10, 10))
# 将文件保存至当前文件目录下,并将返回对象保存在img2中,截取范围在region中
文件保存路径不能含中文!否则报错can’t open/read file: check file path/integrity
一开始我以为是权限问题,但是python已经配了环境变量了。接着删除opencv-python-headless,安装opencv-python,依然报错。
然后我将文件名改为英文就OK了,所以文件名尽量不要用中文
locateCenterOnScreen
pyautogui
其实有很多截图的函数,但是比较有用的是locateCenterOnScreen
基本用法如下:
pag.locateCenterOnScreen('<filename>.png', region=(left, top, width, height), confidence=0.9
该函数返回图片的中心坐标,Point类型
region
指搜索指定图片的范围
confidence
指搜索的匹配程度,越高代表匹配程度越高,主要通过像素点的对应匹配来实现
代码示例:
import pyautogui as pag
pag.screenshot('kar.png')
imgCoordinate = pag.locateCenterOnScreen('kar.png')
pag.click(imgCoordinate)
注意:
- 可能会出现匹配失败的情况,不会像 官方文档 那样说的报错,而是返回
None
类型,这也是我疑惑的一个地方 - 可以通过调confidence的方式来调整匹配程度,防止匹配太严格而导致匹配失败的情况