取色
颜色字符串支持:rgba(r,g,b,a)、rgb(r,g,b)、#RRGGBB / RRGGBB。下列方法均在 Images 上。截图与找图见 图片 Images,权限见 概述。
getColor(imageFile, pixelX, pixelY)
返回 {string} 如
rgba(255,255,255,1.0)
javascript
let color = Images.getColor(Images.capture(), 100, 100);
console.log(color);getColorHex(imageFile, pixelX, pixelY)
返回 {string} 如
#FFFFFF
javascript
let hex = Images.getColorHex(Images.capture(), 100, 100);
console.log(hex);findColor(imageFile, color)
精确找色,返回
Point[]
javascript
let points = Images.findColor(Images.capture(), "#FFFFFF");
console.log(points.length);findColor(imageFile, color, tolerance)
带通道容差找色
javascript
let points = Images.findColor(Images.capture(), "#FFFFFF", 8);
for (let i = 0; i < points.length; i++) {
console.log(points[i].x, points[i].y);
}findColor(imageFile, startColor, endColor)
颜色区间查找(各通道分别构成闭区间)
javascript
let points = Images.findColor(
Images.capture(),
"rgba(252,253,254,0.9)",
"rgba(255,255,255,1.0)"
);
console.log(points.length);findColorInRegion(imageFile, color, tolerance, left, top, width, height)
仅在矩形区域内找色
javascript
let points = Images.findColorInRegion(
Images.capture(),
"#3480F8",
10,
0, 0, 1080, 400
);
console.log(points.length);findColorFirst(imageFile, color, tolerance)
返回第一个匹配点,或
null
javascript
let p = Images.findColorFirst(Images.capture(), "#FF0000", 5);
if (p) {
Hid.tap(p.x, p.y);
}findColorCenter(imageFile, color, tolerance)
返回色块平均中心,或
null
javascript
let c = Images.findColorCenter(Images.capture(), "#3480F8", 10);
if (c) {
console.log(c.x, c.y);
}findMultiColors(imageFile, firstColor, offsets, tolerance)
offsets 为
[[dx, dy, color], ...];返回第一点坐标或null
javascript
let p = Images.findMultiColors(
Images.capture(),
"#FF0000",
[[10, 0, "#00FF00"], [0, 10, "#0000FF"]],
5
);
if (p) {
console.log(p.x, p.y);
}与 Hid 配合
javascript
Hid.ensureConnected();
Hid.tapColor("#3480F8", 10);
Hid.waitColor("#3480F8", 10, 8000);详见 Hid 方法。
