设备控制接口说明-对比屏幕上的颜色
compareColor
原型:
compareColor(coordX, coordY, colors, sim)
是否支持多设备:
不支持
对应的 REST API:
描述:
对比屏幕上指定坐标点的颜色是否为指定的颜色,这里我们都用16 进制颜色,如"0x001122"。
参数:
coordX: 整型, X 坐标
coordY: 整型, Y 坐标
colors: 字符串,指定的 16 进制颜色 ,多个颜色用"|"号分隔, 支持颜色范围,如" 0x0000ff-0xaabbcc|0x001122 "。
Sim: 相似度,仅作用于单个颜色,对颜色范围无用。
对于指定的单个颜色,如果屏幕上指定坐标点的颜色与给定的16 进制颜色差异在相似范围以内,则认为两种颜色相同。相似度取值范围为[0.0, 1.0],1.0表示相识度最高。
返回值:
整型:匹配的颜色值序号。对我们给定的16进制颜色范围进行匹配,从 0 开始索引,跟哪个颜色匹配成功,就返回这个颜色的序号。如果屏幕上指定坐标点的颜色与给定的16 进制颜色全部不相同,则返回 -1,此时可通过 lastError() 函数获取具体的错误信息。
示例:
比较屏幕坐标(578,621) 的颜色和给定的16进制颜色(0xff0000|0x35515e-0x5a9fe4)。
//获取当前主控设备对象
var device = Device.getMain();
//对比颜色,如果给定的16进制颜色中有屏幕坐标的颜色,则输出匹配的颜色序号,否则输出lastError()
var res = device.compareColor(578,621, "0xff0000|0x35515e-0x5a9fe4", 1.0);
if (res >= 0) {
print("颜色序号为: " + res);
} else {
print(lastError());
}
运行结果:
//在屏幕找到颜色,则输出:
颜色序号为: 1