查找所有符合的颜色 - FindColorListEx
函数简介
在绑定窗口中查找指定区域内所有符合颜色模型的像素点,返回坐标列表。适合批量分析、区域检测、特征提取等场景。
ColorModel:
颜色每个通道单独计算范围,如颜色范围位 3278FA,6496FF,实际对应 R(50~100) / G(120~150) / B(250~255)。
包含下限(>= StartColor) 与上限(<= EndColor);支持 ARGB 形式(如 #FFFFFFFF)。
支持反色/交集/并集等模式(按实现为准),示例:
{"StartColor":"3278FA","EndColor":"6496FF","Type":0}
x1,y1,x2,y2 传 0,0,0,0 为查找绑定窗口整个客户区;返回坐标为相对绑定窗口客户区坐标。
接口名称
FindColorListEx
DLL调用
long FindColorListEx(long ola, int x1, int y1, int x2, int y2, string colorJson)
参数定义:
ola(长整型数): OLAPlug对象指针,由 CreateCOLAPlugInterFace 生成。x1(整型数): 区域左上角 X 坐标y1(整型数): 区域左上角 Y 坐标x2(整型数): 区域右下角 X 坐标y2(整型数): 区域右下角 Y 坐标colorJson(字符串): 颜色模型配置字符串,用于限定颜色范围,格式说明见 颜色模型说明 - ColorModel。JSON格式示例:[{"StartColor":"3278FA","EndColor":"6496FF","Type":0}];简化格式示例:3278FA-000000|6496FF-202020或3278FA~6496FF或FF0000|00FF00
示例:
long p = FindColorListEx(ola, 0, 0, 0, 0,
"[{\"StartColor\":\"3278FA\",\"EndColor\":\"6496FF\",\"Type\":0}]");
if (p != 0) {
// p 指向JSON字符串,使用完需要释放
// 示例输出: [{"X":10,"Y":20},{"X":30,"Y":40}]
FreeStringPtr(ola, p);
}
返回值
字符串:
返回所有匹配点坐标的 JSON 字符串,格式如下:
[
{ "X": 19, "Y": 18 },
{ "X": 20, "Y": 18 },
{ "X": 22, "Y": 18 }
]
注意事项
- 返回的字符串指针需调用 FreeStringPtr 释放。
- 当
x1,y1,x2,y2全为 0 时,搜索整个绑定窗口客户区。 - 返回坐标为相对绑定窗口客户区坐标。
- 颜色范围越大,匹配点越多,可能影响查找耗时与内存。
