Skip to content

取色

颜色字符串支持: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 方法

相关页