1.获取截图在当前屏幕的位置
语法:
import pyautogui
pyautogui.locateOnScreen(pathName)参数
pathName:截图图片的路径+名字
返回值
返回的是一个位置元组(top、left、width、height),如果匹配不到则返回None
示例
安装 OpenCV:pip3 install opencv-python pillow --upgrade
import pyautogui
#1.获取截图在当前屏幕位置区域
print(pyautogui.size())
res = pyautogui.locateOnScreen('./test1.png',confidence=0.8) #安装openCV,使用confidence降低匹配精度
print(res)macOS 特有的干扰因素
① Retina 显示器的 HiDPI 渲染
现象:逻辑分辨率(如 1440x900)与物理分辨率(如 2880x1800)不一致
影响:截图图像可能包含:
亚像素边缘抗锯齿
非整数倍缩放导致的模糊
2.通过位置或者中心坐标
pyautogui.center((top,left,width,height))参数
传入位置元组:(top,left,width,height)
示例
import pyautogui
#1.获取截图在当前屏幕位置区域
print(pyautogui.size())
res = pyautogui.locateOnScreen('./test2.png',confidence=0.95)
print(res)
#2.获取区域的中心坐标
x, y = pyautogui.center(res)
scale_factor = 0.5 # 缩放因子 macOS使用的是逻辑分辨率 比较特殊
corrected_x = x * scale_factor
corrected_y = y * scale_factor
#3.模拟点击
pyautogui.click(corrected_x, corrected_y)3.一步获取图片中心坐标(获取截图在当前屏幕的位置+通过位置或者中心坐标)
# 一步获取图片中心坐标
x,y = pyautogui.locateCenterOnScreen('./test1.png',confidence=0.95)
print(x,y) #macOS这里需要*0.54.匹配屏幕所有的目标图片
语法
pyautogui.locateAllOnScreen(pathName)示例
#匹配屏幕所有的目标图片
res = pyautogui.locateAllOnScreen('./test3.png',confidence=0.95)
print(res)
for i in res:
print(i)