跳到主要内容

屏幕找图/找色/找字

在屏幕或窗口上查找指定图片、颜色或文字,返回匹配点坐标。常用来定位按钮、菜单后再点。

当前模块定义

sys:searchBmp图片处理Action
标准模块
输入 16 · 输出 4 · 枚举 3

输入参数

  • 类型typeEnum必填

    操作类型

    填写 固定输入默认 locateByBitmapFile
    4 个选项查找图片(文件、查找图片(变量、查找颜色
    查找图片(文件默认locateByBitmapFile
    查找图片(变量locateByBitmapVar
    查找颜色locateByColor
    查找文字locateByText
  • 位图路径bmpText必填

    需要在屏幕中查找的位图路径。位图必须和屏幕图像完全匹配,不能压缩。此时X、Y的值为相对于搜索位图的左上角的偏移。

    填写 输入或变量条件 仅:locateByBitmapFile
  • 位图变量bmpVarImage必填

    需要在屏幕中查找的位图。位图必须和屏幕图像完全匹配,不能压缩。此时X、Y的值为相对于搜索位图的左上角的偏移。

    填写 仅变量条件 仅:locateByBitmapVar
  • 颜色colorText必填

    要查找的颜色,如#FF0000

    填写 输入或变量条件 仅:locateByColor默认 #FF0000
  • 文字searchTextText可选

    要查找的文字。可使用多行指定多组可选文字,找到任意一组即可。

    填写 输入或变量条件 仅:locateByText
  • 查找范围bmpTargetTypeEnum可选

    位图查找范围

    填写 固定输入条件 仅:locateByBitmapFile, locateByBitmapVar, locateByColor, locateByText默认 MainScreen
    4 个选项主屏幕、当前窗口、坐标范围
    主屏幕默认MainScreen
    当前窗口CurrentWindow
    坐标范围Rect
    所有屏幕AllScreens
  • 查找坐标范围searchRectText可选

    可选。当"查找范围"为"坐标范围"时有效,格式为:left,top,right,bottom

    填写 输入或变量
  • 定位位置bmpPositionEnum可选

    定位点相对位图的位置

    填写 固定输入条件 仅:locateByBitmapFile, locateByBitmapVar默认 Center
    5 个选项位图中间、左上角、右上角
    位图中间默认Center
    左上角TopLeft
    右上角TopRight
    左下角BottomLeft
    右下角BottomRight
  • X偏移xInteger必填

    定位点水平坐标偏移量(正值向右)

    填写 输入或变量默认 0
  • Y偏移yInteger必填

    定位点垂直坐标偏移量(正值向下)

    填写 输入或变量默认 0
  • 颜色容差bmpColorErrorInteger可选

    匹配像素时允许每个颜色通道的偏差值0-100,0表示精确匹配,速度最快。

    填写 固定输入条件 仅:locateByBitmapFile, locateByBitmapVar, locateByColor默认 10
  • 最大匹配maxFindCountInteger可选

    找图的最大匹配数量。将对每个查找到的目标执行附加动作。

    填写 固定输入条件 仅:locateByBitmapFile, locateByBitmapVar默认 1
  • 重试次数retryCountInteger可选

    未找到位图时的重试次数。每次重试间隔300ms。

    填写 固定输入条件 仅:locateByBitmapFile, locateByBitmapVar, locateByColor, locateByText默认 0
  • 跳过WindowsOCR引擎ignoreWindowsOcrBoolean可选
    填写 输入或变量条件 仅:locateByText默认 false
  • 忽略背景色ignoreBgColorBoolean可选

    如果查找图片的4个顶点颜色一致,则认为是背景色,找图时忽略此颜色。

    填写 固定输入条件 仅:locateByBitmapFile, locateByBitmapVar默认 true
  • 失败后中止动作stopIfFailBoolean可选

    获取位置失败后,是否停止后续动作的执行。

    填写 固定输入默认 true

输出参数

  • 是否成功isSuccessBoolean

    操作是否成功

  • 第一个匹配点firstPointText

    第一个匹配点坐标,格式为:x坐标,y坐标

  • 匹配序号imgIndexInteger

    从多个图片或多组文字中查找时,返回匹配到的图片或文字组序号,从0开始。

    条件 仅:locateByBitmapFile, locateByText
  • 所有匹配点allPointsList

    所有的匹配点列表

    条件 仅:locateByBitmapFile, locateByBitmapVar, locateByText

概述

例如要点一个按钮:先把按钮截成 png,再用本模块在屏幕上搜,得到坐标。鼠标输入 里也有「移动到位图位置」,找到后会直接点,但不返回坐标。本模块只回报位置,不点击。

屏幕找图/找色/找字

在屏幕上查找图片里的内容出现的位置
类型
操作类型
位图路径
 
需要在屏幕中查找的位图路径。位图必须和屏幕图像完全匹配,不能压缩。此时X、Y的值为相对于搜索位图的左上角的偏移。
查找范围
位图查找范围
查找坐标范围
 
可选。当"查找范围"为"坐标范围"时有效,格式为:left,top,right,bottom
定位位置
定位点相对位图的位置
X偏移
0
定位点水平坐标偏移量(正值向右)
Y偏移
0
定位点垂直坐标偏移量(正值向下)
颜色容差
10
匹配像素时允许每个颜色通道的偏差值0-100,0表示精确匹配,速度最快。
最大匹配
1
找图的最大匹配数量。将对每个查找到的目标执行附加动作。
重试次数
0
未找到位图时的重试次数。每次重试间隔300ms。
是否成功
-- 选择变量 --
操作是否成功
第一个匹配点
-- 选择变量 --
第一个匹配点坐标,格式为:x坐标,y坐标
匹配序号
-- 选择变量 --
从多个图片或多组文字中查找时,返回匹配到的图片或文字组序号,从0开始。
所有匹配点
-- 选择变量 --
所有的匹配点列表

参数说明

类型

  • 查找图片(文件)
  • 查找图片(变量)
  • 查找颜色
  • 查找文字

位图路径:仅查找图片(文件)。完整路径。可多行,按顺序试,命中一个就停。截图请存 png / bmp,不要用 jpg(有损压缩对不上)。截的时候别把鼠标停在目标上,避免悬浮变色。

位图变量:仅查找图片(变量)。事先用截图或读文件加载。

颜色:仅查找颜色。如 #FF0000

文字:仅查找文字。可多行写多组,命中任意一组即可。

查找范围:主屏幕、当前窗口、坐标范围、所有屏幕。旧稿未写「所有屏幕」。

查找坐标范围:查找范围为「坐标范围」时填写,格式 left,top,right,bottom,例如 0,0,800,600

定位位置:仅找图。返回点相对位图的位置(下图红点):位图中间、左上角、右上角、左下角、右下角。

X偏移 / Y偏移:在定位点上再平移。正值向右、向下。

颜色容差:仅找图、找色。每个颜色通道允许的偏差 0–100。0 是精确匹配,也最快。默认 10

屏幕找图/找色/找字

在屏幕上查找图片里的内容出现的位置
颜色容差
20
匹配像素时允许每个颜色通道的偏差值0-100,0表示精确匹配,速度最快。

最大匹配:仅找图。最多找几个匹配。默认 1

重试次数:找不到时再试几次,每次间隔 300ms。

跳过WindowsOCR引擎:仅找字。旧稿未写。

忽略背景色:仅找图。查找图四个顶点颜色一样时,把这种颜色当背景忽略。默认开启。旧稿未写。

失败后中止动作:找不到是否停止后续步骤。默认开启。

输出

  • 是否成功:是否至少找到一处。
  • 第一个匹配点:从左上往右、往下的第一处,格式 x,y
  • 匹配序号:从多张图或多组文字里查找时,命中的是第几组,从 0 起。仅找图(文件)、找字。旧稿未写。
  • 所有匹配点:全部匹配点列表。找色没有这项。

找图失败时

截图和屏幕不一致:

  • 截的时候鼠标造成了悬浮态。先把鼠标移开,开始截图后再框目标。
  • 分辨率、软件版本或界面变了。保持环境一致,关掉会动态改色的工具。
  • 窗口没对齐到整像素,边缘会有轻微差。
  • 存成了 jpg。改存 png。

目标图尽量小,只要能认出特征:

还不稳就加大颜色容差,或改成整个屏幕再搜。目标还没出现时,前面加等待,或加大重试、放进循环。

社区增强版子程序(容错更高):

屏幕找色

在屏幕或窗口里找指定颜色第一次出现的位置。

屏幕找图/找色/找字

在屏幕上查找图片里的内容出现的位置
类型
操作类型
颜色
#352559
要查找的颜色,如#FF0000
查找范围
位图查找范围
查找坐标范围
 
可选。当"查找范围"为"坐标范围"时有效,格式为:left,top,right,bottom
X偏移
0
定位点水平坐标偏移量(正值向右)
Y偏移
0
定位点垂直坐标偏移量(正值向下)
颜色容差
0
匹配像素时允许每个颜色通道的偏差值0-100,0表示精确匹配,速度最快。
重试次数
1
未找到位图时的重试次数。每次重试间隔300ms。
是否成功
isSuccess
操作是否成功
第一个匹配点
position
第一个匹配点坐标,格式为:x坐标,y坐标

把「第一个匹配点」交给鼠标输入,移动并点击:

鼠标输入

模拟鼠标输入
类型
操作类型
坐标
firstPoint
格式为:x,y,如:100,200。也可以使用百分比表示,如:50%,50% 表示屏幕中心。
移动后操作
移动位置后,需要执行的动作

屏幕找字

按从上到下、从左到右,找指定文字第一次出现的位置。引擎是 Windows 内置 OCR + 基础OCR。面向专业版;免费版能用,但半速。

使用条件:

  • Windows OCR 需要 Windows 10 / 11,并在系统设置里至少装中、英两种语言包。

  • 离线 OCR 只要 64 位系统,CPU 支持 AVX。

注意:目标区域里不要有多处相近文字,必要时用坐标范围收窄;少用标点、空格,OCR 容易认错;找字本身有一定失败率。

屏幕找图/找色/找字

在屏幕上查找图片里的内容出现的位置
类型
操作类型
文字
行业排名
要查找的文字。可使用多行指定多组可选文字,找到任意一组即可。
查找范围
位图查找范围
查找坐标范围
 
可选。当"查找范围"为"坐标范围"时有效,格式为:left,top,right,bottom
X偏移
0
定位点水平坐标偏移量(正值向右)
Y偏移
0
定位点垂直坐标偏移量(正值向下)
重试次数
1
未找到位图时的重试次数。每次重试间隔300ms。
是否成功
isSuccess
操作是否成功
第一个匹配点
firstPoint
第一个匹配点坐标,格式为:x坐标,y坐标

示例动作

屏幕找字示例
注释请用户输入要定位的文字
用户输入单行文本
注释找字,默认为整个屏幕,可以修改为当前窗口以提升速度
屏幕找图/找色/找字查找文字
注释鼠标移动到找到的坐标点
鼠标输入移动到(x,y一同指定) 无

相关链接

更新历史

  • 1.1.4:增加此模块。
  • 1.23.4:增加找色。
  • 1.38.1:增加找字。

更新于