ColorMapping.findMultiColors(firstColor, colors, options)
firstColor {number | string} 第一个点的颜色
colors {Array} 表示剩下的点相对于第一个点的位置和颜色的数组,数组的每个元素为[x, y, color] options {Object} 选项,包括: region {Array} 找色区域。是一个两个或四个元素的数组。(region[0], region[1])表示找色区域的左上角;region[2]*region[3]表示找色区域的宽高。如果只有region只有两个元素,则找色区域为(region[0], region[1])到图片右下角。如果不指定region选项,则找色区域为整张图片。 threshold {number} 找色时颜色相似度的临界值,范围为0 ~ 255(越小越相似,0为颜色相等,255为任何颜色都能匹配)。默认为4。threshold和浮点数相似度(0.0~1.0)的换算为 similarity = (255 - threshold) / 255。 返回 {Point} 多点找色,与images.findMultiColors类似,但多次在同一张图片中找色速度极快。
一个同一张图片多次多点找色的例子 这个官方例子是错的
// 申请截图权限
$images.requestScreenCapture();
// 初始化ColorMapping
let ColorMapping = $colors.mapping;
// 创建ColorMapping实例
let cm = new ColorMapping();
// 截屏
let img = $images.captureScreen();
// 初始化颜色映射
cm.reset(img);
// 使用ColorMapping多点找色
let p1 = cm.findMultiColors("#ff00ff", [[10, 20, "#ffffff"], [30, 40, "#000000"]]);
let p2 = cm.findMultiColors("#ff00ff", [[10, 20, "#ffffff"], [30, 40, "#000000"]]);
log("p1" + p1 + "p2" + p2);
// 释放ColorMapping
cm.recycle();
正确写法
// 申请截图权限
images.requestScreenCapture();
// 初始化ColorMapping
let ColorMapping = $colors.mapping;
// 创建ColorMapping实例
let cm = new ColorMapping();
// 截屏
let img = images.captureScreen();
// 初始化颜色映射
cm.reset(img);
// 使用ColorMapping多点找色
let p1 = cm.findMultiColors("#ffffff", [[10, 20, "#ffffff"], [30, 40, "#ffffff"]]);
let p2 = cm.findMultiColors("#ffffff", [[10, 20, "#ffffff"], [30, 40, "#ffffff"]]);
log("p1" + p1 + "p2" + p2);
// 释放ColorMapping
cm.recycle();
加相似度例子
// 申请截图权限
images.requestScreenCapture();
// 初始化ColorMapping
let ColorMapping = $colors.mapping;
// 创建ColorMapping实例
let cm = new ColorMapping();
sleep(1000)
// 截屏
let img = images.captureScreen();
// 初始化颜色映射
cm.reset(img);
// 使用ColorMapping多点找色
//let p1 = cm.findMultiColors("#ffffff", [[10, 20, "#ffffff"], [30, 40, "#ffffff"]]);
let p2 = cm.findMultiColors('#ffffffff', [
[-6, 1, '#ff009688'],
[3, -3, '#ff009688'],
[11, -3, '#ff009688'],
[20, 1, '#ff009688'],
[16, 0, '#ffffffff'],
[2, 5, '#ffffffff'],
[12, 5, '#ffffffff'],
[7, 15, '#ff009688'],
[-3, 15, '#ffffffff'],
[-9, 10, '#ffffffff'],
[-10, 15, '#ff009688'],
[18, 14, '#ffffffff'],
[26, 15, '#ff009688'],
[24, 6, '#ff009688'],
[8, 25, '#ff009688'],
[-8, 24, '#ff009688'],
[26, 25, '#ff009688'],
[17, 25, '#ffffffff'],
[19, 20, '#ffffffff'],
[7, 20, '#ffffffff'],
[-3, 20, '#ffffffff'],
[-3, 25, '#ffffffff'],
[-10, 30, '#ffffffff'],
[-8, 34, '#ff009688'],
[1, 32, '#ffffffff'],
[10, 32, '#ffffffff'],
[20, 38, '#ff009688'],
[-2, 40, '#ff009688']
], {
threshold: 0.9
});
log(p2);
click(p2.x,p2.y)
// 释放ColorMapping
cm.recycle();
QQ群 568523841