图片是否存在
<h1>图片是否存在</h1>
<h2>功能描述</h2>
<p>本功能用于检测指定的图片是否存在于当前屏幕或指定区域中。</p>
<h2>输入参数</h2>
<ol>
<li>
<p><strong>目标图片</strong>(必填):
- 描述:需要检测的图片名称,支持以下格式:
- 单张图片:<code>图片1</code>
- 多张图片:<code>图片1|图片2-{3}|图片3-{*}</code>
- 通配符格式:
- 带 <code>-{*}</code> 表示无限通配,如 <code>图片-{*}</code>
- 带 <code>-{n}</code> 表示固定数量,如 <code>图片-{5}</code>
- 带 <code>{*}</code>(无 dash)如 <code>图片{*}</code>
- 带 <code>{n}</code>(无 dash)如 <code>图片{3}</code>
- 不带任何花括号,如 <code>img</code>
- 示例:<code>按钮|按钮-{5}|按钮-{*}</code></p>
</li>
<li>
<p><strong>查找范围</strong>(可选):
- 描述:指定检测的区域范围,格式为 <code>x, y, width, height</code>,支持多范围,用 <code>|</code> 分隔。
- 默认值:全屏检测。
- 示例:<code>100, 200, 300, 400|500, 600, 200, 200</code></p>
</li>
<li>
<p><strong>查找方式</strong>(可选):
- 描述:匹配方式,可选值:<code>ANY</code>(任意匹配)、<code>ALL</code>(全部匹配)。
- 默认值:<code>ANY</code>。
- 示例:<code>ALL</code></p>
</li>
<li>
<p><strong>检查所有图片</strong>(可选):
- 描述:是否检查所有图片,<code>true</code> 或 <code>false</code>。
- 默认值:<code>false</code>。
- 示例:<code>true</code></p>
</li>
<li>
<p><strong>触发时间</strong>(可选):
- 描述:延迟触发时间(秒)。
- 默认值:<code>0</code>。
- 示例:<code>5</code></p>
</li>
<li>
<p><strong>触发次数</strong>(可选):
- 描述:触发次数阈值。
- 默认值:<code>0</code>。
- 示例:<code>3</code></p>
</li>
<li>
<p><strong>时间后触发</strong>(可选):
- 描述:是否在延迟时间后触发,<code>true</code> 或 <code>false</code>。
- 默认值:<code>true</code>。
- 示例:<code>false</code></p>
</li>
<li>
<p><strong>次数后触发</strong>(可选):
- 描述:是否在达到触发次数后触发,<code>true</code> 或 <code>false</code>。
- 默认值:<code>true</code>。
- 示例:<code>false</code></p>
</li>
<li>
<p><strong>时间重置</strong>(可选):
- 描述:是否在触发后重置时间,<code>true</code> 或 <code>false</code>。
- 默认值:<code>true</code>。
- 示例:<code>false</code></p>
</li>
<li>
<p><strong>次数重置</strong>(可选):
- 描述:是否在触发后重置次数,<code>true</code> 或 <code>false</code>。
- 默认值:<code>true</code>。
- 示例:<code>false</code></p>
</li>
<li>
<p><strong>存在时返回</strong>(可选):
- 描述:图片存在时返回 <code>true</code> 或 <code>false</code>。
- 默认值:<code>true</code>。
- 示例:<code>false</code></p>
</li>
<li><strong>更新指定截图</strong>(可选):
- 描述:是否更新指定截图,<code>true</code> 或 <code>false</code>。
- 默认值:<code>false</code>。
- 示例:<code>true</code></li>
</ol>
<h2>输出结果</h2>
<ul>
<li><strong>返回结果</strong>:
- <code>true</code>:图片存在(或根据参数返回 <code>false</code>)。
- <code>false</code>:图片不存在(或根据参数返回 <code>true</code>)。</li>
</ul>
<h2>不同场景下的输出</h2>
<ul>
<li>
<p><strong>场景 1:图片存在</strong>
- 场景描述:检测屏幕上是否存在一个名为“按钮”的图片。
- 输入参数:
- 目标图片:<code>按钮</code>
- 查找范围:未指定(全屏检测)
- 查找方式:<code>ANY</code>
- 检查所有图片:<code>false</code>
- 触发时间:<code>0</code>
- 触发次数:<code>0</code>
- 存在时返回:<code>true</code>
- 输出结果:<code>true</code>
- 日志输出:
<code> ✔ 按钮,坐标[100,200,50,50],相似度:0.95,状态:存在 </code></p>
</li>
<li>
<p><strong>场景 2:图片不存在</strong>
- 场景描述:检测屏幕上是否存在一个名为“未知”的图片。
- 输入参数:
- 目标图片:<code>未知</code>
- 查找范围:未指定(全屏检测)
- 查找方式:<code>ANY</code>
- 检查所有图片:<code>false</code>
- 触发时间:<code>0</code>
- 触发次数:<code>0</code>
- 存在时返回:<code>true</code>
- 输出结果:<code>false</code>
- 日志输出:
<code> ✘ 未知,坐标[null],相似度:0,状态:不存在 </code></p>
</li>
<li>
<p><strong>场景 3:多张图片任意匹配</strong>
- 场景描述:检测屏幕上是否存在“按钮1”或“按钮2”中的任意一张图片。
- 输入参数:
- 目标图片:<code>按钮1|按钮2</code>
- 查找范围:未指定(全屏检测)
- 查找方式:<code>ANY</code>
- 检查所有图片:<code>false</code>
- 触发时间:<code>0</code>
- 触发次数:<code>0</code>
- 存在时返回:<code>true</code>
- 输出结果:<code>true</code>(任一存在)
- 日志输出:
<code> ✔ 按钮1,坐标[100,200,50,50],相似度:0.92,状态:存在 </code></p>
</li>
<li>
<p><strong>场景 4:多张图片全部匹配</strong>
- 场景描述:检测屏幕上是否同时存在“按钮1”和“按钮2”两张图片。
- 输入参数:
- 目标图片:<code>按钮1|按钮2</code>
- 查找范围:未指定(全屏检测)
- 查找方式:<code>ALL</code>
- 检查所有图片:<code>false</code>
- 触发时间:<code>0</code>
- 触发次数:<code>0</code>
- 存在时返回:<code>true</code>
- 输出结果:<code>false</code>(任一不存在)
- 日志输出:
<code> ✘ 按钮2,坐标[null],相似度:0,状态:不存在 </code></p>
</li>
<li>
<p><strong>场景 5:触发时间延迟</strong>
- 场景描述:检测屏幕上是否存在“按钮”图片,但延迟5秒后触发检测。
- 输入参数:
- 目标图片:<code>按钮</code>
- 查找范围:未指定(全屏检测)
- 查找方式:<code>ANY</code>
- 检查所有图片:<code>false</code>
- 触发时间:<code>5</code>
- 触发次数:<code>0</code>
- 时间后触发:<code>true</code>
- 存在时返回:<code>true</code>
- 输出结果:<code>true</code>(5秒后触发)
- 日志输出:
<code> ✔ 按钮,坐标[100,200,50,50],相似度:0.95,状态:存在 </code></p>
</li>
<li>
<p><strong>场景 6:触发次数阈值</strong>
- 场景描述:检测屏幕上是否存在“按钮”图片,但仅在检测到3次后才触发结果。
- 输入参数:
- 目标图片:<code>按钮</code>
- 查找范围:未指定(全屏检测)
- 查找方式:<code>ANY</code>
- 检查所有图片:<code>false</code>
- 触发时间:<code>0</code>
- 触发次数:<code>3</code>
- 次数后触发:<code>true</code>
- 存在时返回:<code>true</code>
- 输出结果:<code>true</code>(达到3次后触发)
- 日志输出:
<code> ✔ 按钮,坐标[100,200,50,50],相似度:0.95,状态:存在(第3次) </code></p>
</li>
<li>
<p><strong>场景 7:存在时返回 <code>false</code></strong>
- 场景描述:检测屏幕上是否存在“按钮”图片,但存在时返回 <code>false</code>。
- 输入参数:
- 目标图片:<code>按钮</code>
- 查找范围:未指定(全屏检测)
- 查找方式:<code>ANY</code>
- 检查所有图片:<code>false</code>
- 触发时间:<code>0</code>
- 触发次数:<code>0</code>
- 存在时返回:<code>false</code>
- 输出结果:<code>false</code>
- 日志输出:
<code> ✔ 按钮,坐标[100,200,50,50],相似度:0.95,状态:存在(但返回 false) </code></p>
</li>
<li>
<p><strong>场景 8:多范围检测</strong>
- 场景描述:检测屏幕上是否存在“按钮”图片,但仅在指定的两个区域内检测。
- 输入参数:
- 目标图片:<code>按钮</code>
- 查找范围:<code>100,200,300,400|500,600,200,200</code>
- 查找方式:<code>ANY</code>
- 检查所有图片:<code>false</code>
- 触发时间:<code>0</code>
- 触发次数:<code>0</code>
- 存在时返回:<code>true</code>
- 输出结果:<code>true</code>(任一范围存在)
- 日志输出:
<code> ✔ 按钮,坐标[500,600,50,50],相似度:0.93,状态:存在(范围:500,600,200,200) </code></p>
</li>
<li><strong>场景 9:通配符匹配</strong>
- 场景描述:检测屏幕上是否存在名称以“按钮-”开头的任意数量的图片。
- 输入参数:
- 目标图片:<code>按钮-{*}</code>
- 查找范围:未指定(全屏检测)
- 查找方式:<code>ANY</code>
- 检查所有图片:<code>false</code>
- 触发时间:<code>0</code>
- 触发次数:<code>0</code>
- 存在时返回:<code>true</code>
- 输出结果:<code>true</code>(匹配任意数量)
- 日志输出:
<code> ✔ 按钮-1,坐标[100,200,50,50],相似度:0.91,状态:存在 ✔ 按钮-2,坐标[300,400,50,50],相似度:0.89,状态:存在 </code></li>
</ul>