color-convert
color -convert是一个用于JavaScript和node的颜色转换库。
它可以任意转换 rgb, hsl, hsv, hwb, cmyk, ansi, ansi16, hex 字符串和CSS keywordS(将四舍五入到最接近):
import convert from 'color-convert';
convert.rgb.hsl(140, 200, 100); // [96, 48, 59]
convert.keyword.rgb('blue'); // [0, 0, 255]
const rgbChannels = convert.rgb.channels; // 3
const cmykChannels = convert.cmyk.channels; // 4
const ansiChannels = convert.ansi16.channels; // 1
安装
npm install color-convert
API
只要得到的性质 从 和 来 你正在寻找的皈依。
所有函数都有圆润和非圆润的变体。默认情况下,返回值是四舍五入的。要得到完整的(原始)结果,只需添加 .raw 到函数。
所有的from函数都有一个隐藏属性叫做 .channels 这表示函数期望的通道数(不包括alpha)。
import convert from 'color-convert';
// Hex to LAB
convert.hex.lab('DEADBF'); // [ 76, 21, -2 ]
convert.hex.lab.raw('DEADBF'); // [ 75.56213190997677, 20.653827952644754, -2.290532499330533 ]
// RGB to CMYK
convert.rgb.cmyk(167, 255, 4); // [ 35, 0, 98, 0 ]
convert.rgb.cmyk.raw(167, 255, 4); // [ 34.509803921568626, 0, 98.43137254901961, 0 ]
数组
所有接受多个参数的函数也支持传递数组。
注意,这样做 不 适用于从只需要一个值的颜色转换的函数(例如: keyword, ansi256, hex等)。
import convert from 'color-convert';
convert.rgb.hex(123, 45, 67); // '7B2D43'
convert.rgb.hex([123, 45, 67]); // '7B2D43'
路由
转换没有 显式地 已定义的转换( conversions.js),但可以通过子转换(例如XYZ ->)进行转换 RGB -> CMYK),自动路由在一起。支持的任何颜色模型 color-convert 只要存在子转换路径,就可以转换为任何其他模型。对于在两者之间需要多步的转换(例如LCH ->)也是如此 实验室 -> XYZ -> RGB - >十六进制)。
请记住,广泛的转换 可以 导致精度的损失,而存在只是为了完整。有关“直接”(单步)转换的列表,请参见 conversions.js。
色彩空间尺度
转换依赖于每个渠道商定的“全面”价值。下面列出的是最常见的色彩空间的值
rgb
奥软
hsv
hwb
xyz
实验室
| 通道 | 全面的价值 |
| l | 100 |
| 一个 | -86年,98年 |
| b | -108年,94年 |
华尔街日报
oklab
| 通道 | 全面的价值 |
| l | 100 |
| 一个 | -23年,28 |
| b | -31年,20 |
oklch
cmyk
| 通道 | 全面的价值 |
| c | 100 |
| 米 | 100 |
| y | 100 |
| k | 100 |
十六进制
关键字
苹果
| 通道 | 全面的价值 |
| 0 | 65535 |
| 1 | 65535 |
| 2 | 65535 |
灰色的
贡献
如果您想支持一个新模型,或者想要添加两个现有模型之间的直接转换,请向我们发送pull请求。
许可证
版权所有©2011-2016,Heather Arthur。
版权所有©2016-2021,Josh Junon。
根据 麻省理工学院的许可。