/** * 将开尔文色温值转换为 RGB 颜色数组 * @public * @since @ray-js/panel-sdk 1.0.0 * @param kelvin - 开尔文色温值(建议范围 1000K - 40000K) * @returns RGB 颜色值数组 [r, g, b],每个通道值范围 0-255 * @remarks 基于黑体辐射的曲线拟合算法,适用于照片处理等非高精度场景。精度在 1000K 到 40000K 之间最佳。 * @example 基础用法 * ```ts * import { utils } from '@ray-js/panel-sdk'; * * const { kelvin2rgb } = utils; * * const rgb = kelvin2rgb(6500); // 日光色温,接近 [255, 249.574170569891, 254.30625501058964] * const warm = kelvin2rgb(2700); // 暖白色温 * ``` */ export declare const kelvin2rgb: (kelvin: number) => number[]; /** * 将 RGB 颜色值转换为开尔文色温值 * @public * @since @ray-js/panel-sdk 1.0.0 * @param rgb - RGB 颜色值数组 [r, g, b] * @returns 对应的开尔文色温值(整数) * @remarks 通过二分查找法将 RGB 颜色映射回近似的开尔文色温。 * @example 基础用法 * ```ts * import { utils } from '@ray-js/panel-sdk'; * * const { rgb2kelvin } = utils; * * const kelvin = rgb2kelvin([255, 255, 255]); // 约 6524 * ``` */ export declare const rgb2kelvin: (rgb: number[]) => number; /** * 将亮度和色温值转换为 RGB 颜色字符串 * @public * @since @ray-js/panel-sdk 1.0.0 * @param bright - 亮度值,范围 1-1000 * @param temperature - 色温值,范围 0-1000 * @param kelvinRange - 可选色温范围配置,kelvinMin 默认 2200,kelvinMax 默认 6500 * @returns RGB 或 RGBA 颜色字符串,如 'rgb(255, 200, 150)' * @remarks 常用于照明设备面板,将设备上报的亮度和色温 DP 值转换为可显示的颜色。 * @example 基础用法 * ```ts * import { utils } from '@ray-js/panel-sdk'; * * const { brightKelvin2rgb } = utils; * * const color = brightKelvin2rgb(1000, 1000); // 最高亮度、最高色温 * const warm = brightKelvin2rgb(500, 0); // 中等亮度、最低色温(暖光) * const custom = brightKelvin2rgb(800, 500, { kelvinMin: 2700, kelvinMax: 6500 }); * ``` */ export declare const brightKelvin2rgb: (bright?: number, temperature?: number, kelvinRange?: { kelvinMin?: number | undefined; kelvinMax?: number | undefined; }) => string; /** * 将 RGB 数值数组转换为 CSS 颜色字符串 * @public * @since @ray-js/panel-sdk 1.0.0 * @param originRgb - RGB 或 RGBA 数值数组,如 [255, 0, 0] 或 [255, 0, 0, 0.5] * @param a - 可选的 alpha 透明度值(0-1),当数组为 3 元素时有效 * @returns CSS 颜色字符串,如 'rgb(255, 0, 0)' 或 'rgba(255, 0, 0, 0.5)' * @remarks 当传入 4 元素数组时自动使用 rgba 格式;当传入 3 元素数组并提供 a 参数时也使用 rgba 格式。 * @example 基础用法 * ```ts * import { utils } from '@ray-js/panel-sdk'; * * const { rgb2RgbString } = utils; * * rgb2RgbString([255, 0, 0]); // 'rgb(255, 0, 0)' * rgb2RgbString([255, 0, 0], 0.5); // 'rgba(255, 0, 0, 0.5)' * rgb2RgbString([255, 0, 0, 0.8]); // 'rgba(255, 0, 0, 0.8)' * ``` */ export declare const rgb2RgbString: (originRgb: number[], a?: number) => string; /** * 将 RGB 颜色值转换为 HSV 颜色模式 * @public * @since @ray-js/panel-sdk 1.0.0 * @param r - 红色通道值(0-255) * @param g - 绿色通道值(0-255) * @param b - 蓝色通道值(0-255) * @returns HSV 数组 [h, s, v],其中 h 为色相(0-360),s 为饱和度(0-100),v 为明度(0-100) * @example 基础用法 * ```ts * import { utils } from '@ray-js/panel-sdk'; * * const { rgb2hsv } = utils; * * rgb2hsv(255, 0, 0); // [0, 100, 100] 红色 * rgb2hsv(0, 255, 0); // [120, 100, 100] 绿色 * rgb2hsv(128, 128, 128); // [0, 0, 50] 灰色 * ``` */ export declare const rgb2hsv: (r: number, g: number, b: number) => number[]; /** * 将 RGB 颜色值转换为 HSB 颜色模式 * @public * @since @ray-js/panel-sdk 1.0.0 * @param r - 红色通道值(0-255) * @param g - 绿色通道值(0-255) * @param b - 蓝色通道值(0-255) * @returns HSB 数组 [h, s, b],等同于 HSV 模式 * @remarks HSB 与 HSV 是同一颜色模型的不同名称,功能完全相同。 * @example 基础用法 * ```ts * import { utils } from '@ray-js/panel-sdk'; * * const { rgb2hsb } = utils; * * rgb2hsb(255, 0, 0); // [0, 100, 100] * ``` */ export declare const rgb2hsb: (r: number, g: number, b: number) => number[]; /** * 将 HSV 颜色值转换为 RGB 颜色模式 * @public * @since @ray-js/panel-sdk 1.0.0 * @param h - 色相值(0-360) * @param s - 饱和度(0-100) * @param v - 明度(0-100) * @param a - 可选的 alpha 透明度值(0-1) * @returns RGB 数组 [r, g, b],每个通道值范围 0-255 * @example 基础用法 * ```ts * import { utils } from '@ray-js/panel-sdk'; * * const { hsv2rgb } = utils; * * hsv2rgb(0, 100, 100); // [255, 0, 0] 红色 * hsv2rgb(120, 100, 100); // [0, 255, 0] 绿色 * hsv2rgb(240, 100, 100); // [0, 0, 255] 蓝色 * ``` */ export declare const hsv2rgb: (h: number, s: number, v: number, a?: number) => number[]; /** * 将十六进制颜色值转换为 HSV 颜色模式 * @public * @since @ray-js/panel-sdk 1.0.0 * @param hex - 十六进制颜色字符串,如 '#FF0000' 或 'FF0000' * @returns HSV 数组 [h, s, v],其中 h 为色相(0-360),s 为饱和度(0-100),v 为明度(0-100) * @example 基础用法 * ```ts * import { utils } from '@ray-js/panel-sdk'; * * const { hex2hsv } = utils; * * hex2hsv('#FF0000'); // [0, 100, 100] * hex2hsv('#00FF00'); // [120, 100, 100] * ``` */ export declare const hex2hsv: (hex: string) => number[]; /** * 将 RGB 颜色值转换为十六进制颜色字符串 * @public * @since @ray-js/panel-sdk 1.0.0 * @param r - 红色通道值(0-255) * @param g - 绿色通道值(0-255) * @param b - 蓝色通道值(0-255) * @returns 十六进制颜色字符串,如 '#FF0000' * @example 基础用法 * ```ts * import { utils } from '@ray-js/panel-sdk'; * * const { rgb2hex } = utils; * * rgb2hex(255, 0, 0); // '#FF0000' * rgb2hex(0, 255, 0); // '#00FF00' * ``` */ export declare const rgb2hex: (r: number, g: number, b: number) => string; /** * 将十六进制颜色值转换为 CSS RGB/RGBA 颜色字符串 * @public * @since @ray-js/panel-sdk 1.0.0 * @param hex - 十六进制颜色字符串,如 '#FF0000' 或 'FF0000' * @param a - 可选的 alpha 透明度值(0-1) * @returns CSS 颜色字符串,如 'rgb(255, 0, 0)' 或 'rgba(255, 0, 0, 0.5)' * @example 基础用法 * ```ts * import { utils } from '@ray-js/panel-sdk'; * * const { hex2rgbString } = utils; * * hex2rgbString('#FF0000'); // 'rgb(255, 0, 0)' * hex2rgbString('#FF0000', 0.5); // 'rgba(255, 0, 0, 0.5)' * ``` */ export declare const hex2rgbString: (hex: string, a?: number) => string; /** * 将 HSV 颜色值转换为 CSS RGB/RGBA 颜色字符串 * @public * @since @ray-js/panel-sdk 1.0.0 * @param h - 色相值(0-360) * @param s - 饱和度(0-100) * @param v - 明度(0-100) * @param a - 可选的 alpha 透明度值(0-1) * @returns CSS 颜色字符串,如 'rgb(255, 0, 0)' 或 'rgba(255, 0, 0, 0.5)' * @example 基础用法 * ```ts * import { utils } from '@ray-js/panel-sdk'; * * const { hsv2rgbString } = utils; * * hsv2rgbString(0, 100, 100); // 'rgb(255, 0, 0)' * hsv2rgbString(120, 100, 100, 0.8); // 'rgba(0, 255, 0, 0.8)' * ``` */ export declare const hsv2rgbString: (h: number, s: number, v: number, a?: number) => string;