isInGamut
检查一个颜色是否在指定的色域(如 RGB 或 P3)范围内。
示例
基本用法
typescript
// 默认检查 sRGB 色域
isInGamut('#FF0000')
// => true
isInGamut('hsl(0, 100%, 50%)') // 同样是红色
// => true
检查 P3 色域
typescript
// 红色在 P3 色域内
isInGamut('#FF0000', 'p3')
// => true
// 标准的 sRGB 蓝色实际上超出了 P3 色域
isInGamut('#0000FF', 'p3')
// => false
签名与说明
typescript
/**
* 检查一个颜色是否在指定的色域范围内。
* @param color 要检查的颜色字符串(如 'red', '#FF0000', 'rgb(255,0,0)')或颜色对象
* @param gamut 目标色域,支持 'rgb' 和 'p3'
* @default
* @returns 如果颜色在指定色域内,则返回 `true`;如果超出色域,则返回 `false`;如果输入无效,则返回 `null`
*/
export function isInGamut(color: string | EsdoraColor, gamut: 'rgb' | 'p3' = 'rgb'): boolean | null
注意事项与边界情况
- 关于无效输入: 当
color
参数为无效的颜色字符串(如'invalid-color'
,''
)、null
、undefined
或无法解析的对象时,函数将返回null
。 - 关于内部转换失败: 如果提供的颜色对象格式正确但内部无法执行色域检查(例如,一个虚构的颜色模式),函数也会稳健地返回
null
而不是抛出错误。