查找指定区域内的颜色块 - FindColorBlockEx
函数简介
在绑定窗口中查找符合指定颜色范围的第一个颜色块中心点,支持方向优先策略。
接口名称
FindColorBlockEx
DLL调用
int32_t FindColorBlockEx(int64_t instance, int32_t x1, int32_t y1, int32_t x2, int32_t y2,
string colorList, int32_t count, int32_t width, int32_t height,
int32_t dir, int32_t* x, int32_t* y)
参数定义
instance(长整型数): OLAPlug对象指针,由 CreateCOLAPlugInterFace 生成x1/y1/x2/y2(整型数): 搜索区域左上角与右下角坐标(全0为整个客户区)colorList(字符串): 颜色模型配置字符串,用于限定图像匹配中的颜色范围,格式说明见 颜色模型说明 - ColorModel。JSON格式示例:[{"StartColor":"3278FA","EndColor":"6496FF","Type":0}];简化格式示例:3278FA-000000|6496FF-202020或3278FA~6496FF或FF0000|00FF00count(整型数): 在width×height的色块中,需满足颜色条件的最小像素数量width(整型数): 颜色块的宽度,单位为像素。height(整型数): 颜色块的高度,单位为像素。dir(整型数): 查找方向- 0: 左→右,上→下
- 1: 左→右,下→上
- 2: 右→左,上→下
- 3: 右→左,下→上
- 4: 从中心向外
- 5: 上→下,左→右
- 6: 上→下,右→左
- 7: 下→上,左→右
- 8: 下→上,右→左
x(整型数指针): 返回找到的颜色块左上角的X坐标。y(整型数指针): 返回找到的颜色块左上角的Y坐标。
示例
int x = 0, y = 0;
string colorList = "[{\"StartColor\":\"3278FA\",\"EndColor\":\"6496FF\",\"Type\":0}]";
int32_t ret = FindColorBlockEx(ola, 0, 0, 0, 0, colorList, 10, 20, 20, 0, &x, &y);
返回值
- 0: 未找到
- 1: 找到
注意事项
- 颜色范围为 RRGGBB,支持 ARGB(如 #FFFFFFFF)与反色/交集模式
- 坐标返回为相对窗口客户区
