Skip to main content

多点找色

from ascript.android.screen import FindColors

从屏幕中找到 符合颜色特征点点位

方法

找一个点

找到 一个符合特征点的位置 立刻返回

  • 函数
FindColors.find(colors:str,rect:list=None,space:int=5,ori:int=2,diff:float=0.9)
  • 参数
参数类型是否必填说明
colorsstr颜色特征点, 通常用图色助手获取
rectlist圈定屏幕范围
spaceint找色结果间距 默认:5像素 ,如果返回的结果,多个点位的像素值 在5像素内重合.则只保留一个
oriint找色方向 1-8 个方向 ,2(默认):左上角到右下角,横向开始找色 详情见...
difffloat相似度 0-1 之间, 1为100%匹配 默认:0.9
  • 返回值

Point 点位对象. 可通过 .x .y 获取坐标

# 查找一个满足颜色特征的点
# 导包
from ascript.android.screen import FindColors

point = FindColors.find('634,2126,#05D395|675,2142,#05D395|889,2146,#05D395|939,2117,#05D395|868,2085,#05D395|652,2124,#05D294',rect=[82,2010,1005,2215])
if point:
# 打印 x坐标 和 y坐标
print(point.x,point.y)

找到全部点

找到 一个符合特征点的位置 立刻返回

  • 函数
FindColors.find_all(colors:str,rect:list=None,space:int=5,ori:int=2,diff:float=0.9)
  • 参数
参数类型是否必填说明
colorsstr颜色特征点, 通常用图色助手获取
rectlist圈定屏幕范围
spaceint找色结果间距 默认:5像素 ,如果返回的结果,多个点位的像素值 在5像素内重合.则只保留一个
oriint找色方向 1-8 个方向 ,2(默认):左上角到右下角,横向开始找色 详情见...
difffloat相似度 0-1 之间, 1为100%匹配 默认:0.9 ,当图色工具中颜色带有偏色,则不会使用该值
  • 返回值

Point 点位对象. 可通过 .x .y 获取坐标

  • 示例
# 查找所有满足颜色特征的点
# 导包
from ascript.android.screen import FindColors

points = FindColors.find_all('634,2126,#05D395|675,2142,#05D395|889,2146,#05D395|939,2117,#05D395|868,2085,#05D395|652,2124,#05D294',rect=[82,2010,1005,2215])
if points:
# 打印 x坐标 和 y坐标
for p in points:
print(p.x,p.y)

关于找色方向

找色方向是指:找到颜色特征点的先后顺序

如图:

来自静态目录的图像

  • 1: 左上角到右下角,纵向开始找色,先找到 a 顶点。
  • 2: 左上角到右下角,横向开始找色,先找到 b 顶点。
  • 3: 右上角到左下角,横向开始找色,先找到 c 顶点。
  • 依此类推