Script 1.8.1

compareColorEx (重载一)

原型:

compareColorEx(multipleColor, sim)

是否支持多设备:

不支持

对应的 REST API:

同时比较指定的多个坐标点的颜色(compareColorEx重载一 )

描述:

同时比较多个指定坐标点的颜色,支持多色、颜色范围、相似度比较,这里我们都用16 进制颜色,如"0x001122"。

参数:

multipleColor: 字符串,格式为(X 坐标|Y 坐标|16 进制颜色), 多个点之间用","号分隔,比如" 100|200|0xffffff|0xaabbcc-0x000000,300|500|0xffffff "。其中,
X 坐标:整型
Y 坐标:整型,
16 进制颜色: 字符串,指定的 16 进制颜色 ,多个颜色用"|"号分隔, 支持颜色范围,如" 0x0000ff-0xaabbcc|0x001122 "。
Sim: 相似度,仅作用于单个颜色,对颜色范围无用。
对于指定的单个颜色,如果屏幕上指定坐标点的颜色与给定的16 进制颜色差异在相似范围以内,则认为两种颜色相同。相似度取值范围为[0.0, 1.0],1表示相识度最高。

返回值:

布尔型: 如果给定的16进制颜色中找到屏幕坐标的颜色,则返回true,否则返回false。
注意:
同时比较多个指定坐标点的颜色,只要其中一个指定屏幕坐标的颜色没有在给定的16进制颜色中找到,就返回false。

示例:

两个坐标点的颜色与指定的颜色比较。
屏幕坐标(32,621) 的颜色与给定的16进制颜色(0x9c1f8|0xff0000-0xffffff)比较
屏幕坐标(77,421) 的颜色与给定的16进制颜色(0x6fa913|0x9c1f8)比较

//获取当前主控设备对象
var device = Device.getMain();
//对比颜色,如果两个坐标颜色都跟指定的16进制颜色匹配成功,则输出匹配成功,否则输出lastError()
var res = device.compareColorEx("32|621|0x9c1f8|0xff0000-0xffffff,77|421|0x6fa913|0x9c1f8", 1.0);
if(!res){
    print(lastError());
} else {
    print("匹配成功");
}