保存坐标
<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> 匹配以“图片-”开头且后面有5个字符的名称)。
- <code>{*}</code>:匹配任意数量的字符(如 <code>图片{*}</code> 匹配包含“图片”的任意名称)。
- <code>{n}</code>:匹配固定数量的字符(如 <code>图片{3}</code> 匹配包含“图片”且后面有3个字符的名称)。
- 无通配符:精确匹配(如 <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>x,y,width,height-x_offset,y_offset</code>。
- 示例:<code>128,72,1024,576-128,72</code></p>
</li>
<li>
<p><strong>匹配策略</strong>(可选):
- 描述:匹配方式,可选值:
- <code>首个匹配图片</code>:仅保存第一个匹配的图片坐标。
- <code>所有匹配图片</code>:保存所有匹配的图片坐标。
- 默认值:<code>首个匹配图片</code>。</p>
</li>
<li>
<p><strong>保存类型</strong>(可选):
- 描述:保存方式,可选值:
- <code>保存一个坐标</code>:仅保存一个坐标。
- <code>保存所有坐标</code>:保存所有匹配的坐标。
- 默认值:<code>保存一个坐标</code>。</p>
</li>
<li>
<p><strong>坐标合并</strong>(可选):
- 描述:是否合并多个坐标,<code>true</code> 或 <code>false</code>。
- 默认值:<code>false</code>。</p>
</li>
<li>
<p><strong>排序方式</strong>(可选):
- 描述:坐标排序方式,可选值:
- <code>按名称优先级</code>:按图片名称排序。
- <code>按x升序</code>:按x坐标升序排序。
- <code>按x降序</code>:按x坐标降序排序。
- <code>按y升序</code>:按y坐标升序排序。
- <code>按y降序</code>:按y坐标降序排序。
- 默认值:<code>按名称优先级</code>。</p>
</li>
<li><strong>目标分组</strong>(可选):
- 描述:保存坐标的分组名称。
- 默认值:<code>合并分组</code>。</li>
</ol>
<h2>输出结果</h2>
<ul>
<li><strong>初始匹配坐标</strong>:原始匹配到的坐标字符串,格式为<code>x,y,width,height</code>,多个坐标用<code>|</code>分隔。</li>
<li><strong>最终输出坐标</strong>:经过偏移和合并处理后的坐标字符串,格式与初始匹配坐标一致。</li>
<li><strong>数组长度</strong>:匹配到的坐标数量,若未匹配到则为<code>&quot;&quot;</code>。</li>
</ul>
<h2>典型场景</h2>
<ol>
<li>
<p><strong>基础匹配</strong>
- 输入:目标图片=<code>按钮</code>,查找范围=空,匹配策略=<code>首个匹配图片</code>
- 输出:初始匹配坐标=<code>100,200,50,50</code>,最终输出坐标=<code>100,200,50,50</code>,数组长度=<code>1</code></p>
</li>
<li>
<p><strong>无匹配</strong>
- 输入:目标图片=<code>未知</code>,查找范围=空
- 输出:初始匹配坐标=<code>&quot;&quot;</code>,最终输出坐标=<code>&quot;&quot;</code>,数组长度=<code>&quot;&quot;</code></p>
</li>
<li>
<p><strong>多图匹配</strong>
- 输入:目标图片=<code>按钮1|按钮2</code>,匹配策略=<code>所有匹配图片</code>
- 输出:初始匹配坐标=<code>100,200,50,50|300,400,50,50</code>,最终输出坐标=<code>100,200,50,50|300,400,50,50</code>,数组长度=<code>2</code></p>
</li>
<li>
<p><strong>坐标偏移</strong>
- 输入:目标图片=<code>按钮</code>,坐标偏移=<code>128,72,1024,576-128,72</code>
- 输出:初始匹配坐标=<code>100,200,50,50</code>,最终输出坐标=<code>228,272,50,50</code>,数组长度=<code>1</code></p>
</li>
<li>
<p><strong>合并分组</strong>
- 输入:目标图片=<code>按钮1|按钮2</code>,目标分组=<code>合并分组</code>,坐标合并=<code>true</code>
- 输出:初始匹配坐标=<code>100,200,50,50|300,400,50,50</code>,最终输出坐标=<code>100,200,150,150</code>,数组长度=<code>1</code></p>
</li>
<li>
<p><strong>按图分组</strong>
- 输入:目标图片=<code>按钮1|按钮2</code>,目标分组=<code>按图分组</code>,坐标合并=<code>true</code>
- 输出:初始匹配坐标=<code>100,200,50,50|300,400,50,50</code>,最终输出坐标=<code>100,200,50,50|300,400,50,50</code>,数组长度=<code>2</code></p>
</li>
<li>
<p>*<em>通配符匹配(-{</em>})*<em>
- 输入:目标图片=`按钮-{</em>}<code>,查找范围=空,匹配策略=</code>所有匹配图片<code> - 输出:初始匹配坐标=</code>100,200,50,50|300,400,50,50<code>,最终输出坐标=</code>100,200,50,50|300,400,50,50<code>,数组长度=</code>2`</p>
</li>
<li>*<em>通配符匹配({</em>})*<em>
- 输入:目标图片=`按钮{</em>}<code>,查找范围=空,匹配策略=</code>所有匹配图片<code> - 输出:初始匹配坐标=</code>100,200,50,50|300,400,50,50<code>,最终输出坐标=</code>100,200,50,50|300,400,50,50<code>,数组长度=</code>2`</li>
</ol>