颜色相关
javascript
const core = require('cheese-js');
查找多个颜色: public static findMultiColors(bitmap: Bitmap, firstColor: string, paths: any, options: any): Point
✅
参数:
- ⭐
Bitmap
(bitmap): 要搜索的图像 - ⭐
string
(firstColor): 主要颜色,支持 HEX 颜色字符串(如"#FDEA2B"
) - ⭐
any
(paths): 颜色相对主颜色的位置和颜色数组,格式如[[x, y, color], ...]
- ⭐
any
(options): 查找选项对象,例如{ maxDistance: 30 }
,表示颜色最大容差
返回值:
- 🟢
Point
— 查找到的匹配点坐标(x, y) - 🔴 null — 未找到时返回
用法示例:
javascript
const core = require('cheese-js');
const { color, base, converters, image } = core;
// 加载图片资源
const templateImage = converters.assetsToBitmap("home.png");
// 多点颜色匹配参数
const mainColor = "#FDEA2B";
const matchPoints = [
[36, 3, "#281700"],
[33, 3, "#EFB321"],
[33, 5, "#876D30"]
];
const options = { maxDistance: 30 };
// 查找匹配位置
const resultPoint = color.findMultiColors(templateImage, mainColor, matchPoints, options);
if (resultPoint) {
console.log(`匹配坐标:${resultPoint.x}, ${resultPoint.y}`);
// 绘制匹配点
const annotatedImage = image.drawPointOnBitmap(templateImage, "match-result", resultPoint.x, resultPoint.y);
// 显示结果图像
image.showBitmapView(annotatedImage);
// 释放资源
base.release(annotatedImage);
} else {
console.warn("未找到匹配点");
}
// 无论是否成功,都释放原图资源
base.release(templateImage);
颜色检测: public static compareColor(baseColorHex: string, targetColorHex: string, options: any): boolean
✅
参数:
- ⭐
string
(baseColorHex): 基准颜色的 HEX 字符串(如"#FF0000"
) - ⭐
string
(targetColorHex): 目标颜色的 HEX 字符串 - ⭐
any
(options): 选项对象,比如颜色容差阈值等
返回值:
- 🟢
boolean
— 两个颜色是否在容差范围内被判定为相同
用法示例:
javascript
// 引入 cheese-js 模块
const core = require('cheese-js');
// 从 core 模块中解构导入 color 模块
const { color } = core;
// 定义颜色比较的选项
const options = {
maxDistance: 0.2, // 颜色比较的最大容差值,决定颜色差异的最大范围 0.1 - 0.5之间 越小越相似
};
// 使用 color 模块的 compareColor 方法比较两个颜色
// 参数:两个颜色的 HEX 值和选项对象
console.log(color.compareColor("#FF0000", "#988333", options));
// 输出:比较 "#FF0000"(红色)和 "#988333"(橄榄色)的差异,返回是否在允许的最大容差内
获取颜色: public static getPointColor(inputImage: Bitmap, format: number, x: number, y: number): IntArray
✅
参数:
- ⭐
Bitmap
(inputImage): 输入的图像对象 - ⭐
number
(format): 颜色格式,例如 RGBA、ARGB 等 - ⭐
number
(x): 横坐标 - ⭐
number
(y): 纵坐标
返回值:
- 🟢
IntArray
— 位置(x, y)
处的颜色数组,格式取决于传入的format
用法示例:
javascript
// 引入 cheese-js 模块
const core = require('cheese-js');
// 导入 color 和 converters 模块
const { color, converters } = core;
// 加载图片资源(1.png),转换为 Bitmap 格式
const templateImage = converters.assetsToBitmap("home.png");
// 检查图片是否加载成功
if (!templateImage) {
console.error("❌ 图片加载失败,请确认资源路径和文件是否存在");
} else {
// 设置要获取颜色的坐标点
const x = 435, y = 379;
// 获取指定坐标的颜色数据(RGB格式),带边界检查
const colorData = color.getPointColor(templateImage, color.ColorFormat.RGB, x, y);
// 判断是否成功获取到颜色数据
if (colorData) {
console.log(`✅ 成功获取颜色数据,通道数量: ${colorData.length}`);
// 遍历 RGB 各通道值(通常为 R、G、B)
for (let i = 0; i < colorData.length; i++) {
console.log(`通道 ${i} 的值: ${colorData[i]}`);
}
} else {
console.warn(`⚠️ 坐标 (${x}, ${y}) 超出了图像的边界,无法获取颜色`);
}
}
获取 HEX 颜色值: public static getPointHEX(inputImage: Bitmap, format: number, x: number, y: number): string
✅
参数:
- ⭐
Bitmap
(inputImage): 输入的图像对象 - ⭐
number
(format): 颜色格式 - ⭐
number
(x): 横坐标 - ⭐
number
(y): 纵坐标
返回值:
- 🟢
string
— 位置(x, y)
处的颜色的 HEX 字符串表示(例如#FFAABB
)
用法示例:
javascript
// 引入 cheese-js 模块
const core = require('cheese-js');
// 导入 color 和 converters 模块
const { color, converters } = core;
// 加载图片资源(1.png),转换为 Bitmap 格式
const templateImage = converters.assetsToBitmap("home.png");
// 检查图片是否加载成功
if (!templateImage) {
console.error("❌ 图片加载失败,请确认资源路径和文件是否存在");
} else {
// 设置要获取颜色的坐标点
const x = 435, y = 379;
// 获取指定坐标的颜色数据(RGB格式),带边界检查
const colorData = color.getPointHEX(templateImage, color.ColorFormat.RGB, x, y);
// 判断是否成功获取到颜色数据
console.log(colorData)
}
RGB 转 HEX 颜色值: public static rgbToHEX(r: number, g: number, b: number): string
✅
参数:
- ⭐
number
(r): 红色分量,取值范围 0-255 - ⭐
number
(g): 绿色分量,取值范围 0-255 - ⭐
number
(b): 蓝色分量,取值范围 0-255
返回值:
- 🟢
string
— 对应的 HEX 颜色字符串(例如#FFAABB
)
用法示例:
javascript
const core = require('cheese-js');
const { color } = core;
const r = 255;
const g = 170;
const b = 187;
const hexColor = color.rgbToHEX(r, g, b);
console.log("RGB 转 HEX 颜色:", hexColor);
ARGB 转 HEX 颜色值: public static argbToHEX(a: number, r: number, g: number, b: number): string
✅
参数:
- ⭐
number
(a): 透明度(Alpha)分量,取值范围 0-255 - ⭐
number
(r): 红色分量,取值范围 0-255 - ⭐
number
(g): 绿色分量,取值范围 0-255 - ⭐
number
(b): 蓝色分量,取值范围 0-255
返回值:
- 🟢
string
— 对应的带透明度的 HEX 颜色字符串(例如#80FFAABB
)
用法示例:
javascript
const core = require('cheese-js');
const { color } = core;
const a = 128; // 半透明
const r = 255;
const g = 170;
const b = 187;
const hexColor = color.argbToHEX(a, r, g, b);
console.log("ARGB 转 HEX 颜色:", hexColor);
HEX 转 ARGB 数组: public static parseHex(hex: string): IntArray
✅
参数:
- ⭐
string
(hex): 16进制颜色字符串,格式如#RRGGBB
或#AARRGGBB
返回值:
- 🟢
IntArray
— 包含颜色通道的整数数组,格式为[A, R, G, B] 或 [R, G, B]
用法示例:
javascript
// 导入 color 和 converters 模块
const { color } = core;
const colorData= color.parseHex("#00FF00")
// 判断是否成功获取到颜色数据
if (colorData) {
console.log(`✅ 成功获取颜色数据,通道数量: ${colorData.length}`);
// 遍历 RGB 各通道值(通常为 R、G、B)
for (let i = 0; i < colorData.length; i++) {
console.log(`通道 ${i} 的值: ${colorData[i]}`);
}
} else {
console.warn(`无法获取颜色`);
}
解析颜色字符串: public static parseColor(colorString: string): number
✅
参数:
- ⭐
string
(colorString): 颜色字符串,支持多种格式,如"#RRGGBB"
,"#AARRGGBB"
,或颜色名称等
返回值:
- 🟢
number
— 解析后的颜色整数值
用法示例:
javascript
const core = require('cheese-js');
const { color } = core;
const colorStr1 = "#FFAABB";
const colorStr2 = "#80FFAABB";
const colorValue1 = color.parseColor(colorStr1);
const colorValue2 = color.parseColor(colorStr2);
console.log("颜色字符串解析值1:", colorValue1);
console.log("颜色字符串解析值2:", colorValue2);