color namer
v1.4.0
给我一种颜色,我会给它命名。
Color Namer 是一个在 Node.js 或浏览器中使用的 npm 包,它使用 Delta-E 色差技术计算色距。给定十六进制 RGB、RGBA、HSL 或 HSV 格式的颜色,它会将颜色转换到 L a b* 颜色空间,然后计算该颜色与一组已知名称的颜色的欧几里得距离。
D3 的 Mike Bostock 对此做了很好的解释:
Lab 和 HCL 颜色空间的特殊之处在于,两种颜色之间的感知差异与其在颜色空间中的欧几里德距离成正比。这种称为感知均匀性的特殊属性使它们成为精确数据视觉编码的理想选择。相比之下,更熟悉的 RGB 和 HSL 颜色空间在用于可视化时会扭曲数据。
颜色名称源自多个列表:
npm install color-namer --save
需要模块:
var namer = require ( 'color-namer' )
var names = namer ( "#FF0000" )
从上面的代码中,每个列表的names
都有一个键:
names.roygbiv
names.basic
names.html
names.x11
names.pantone
names.ntc
每个列表都是一个颜色数组,按它们与给定颜色的感知相似度排序:
[
{ name : 'red' ,
hex : '#FF0000' ,
distance : 0
} , {
name : 'orangered' ,
hex : '#FF4500' ,
distance : 13.170205025755513
} , {
name : 'tomato' ,
hex : '#FF6347' ,
distance : 31.733444038510665
} , {
name : 'crimson' ,
hex : '#DC143C' ,
distance : 35.38084849496472
} , {
name : 'firebrick' ,
hex : '#B22222' ,
distance : 40.71076805218006
} , {
name : 'coral' ,
hex : '#FF7F50' ,
distance : 42.340752375722616
} , {
name : 'chocolate' ,
hex : '#D2691E' ,
distance : 44.378454180212145
}
]
其他输入格式也可以使用,例如 HSL、RGB 和 RGBA:
name ( "hsl(50,100%,50%)" )
name ( "rgb(255,0,0)" )
name ( "rgba(255,0,0,1)" )
此选项允许我们从专用列表中派生名称以加快计算速度。
var names = namer ( color , { pick : [ 'basic' , 'x11' ] } )
// output: { basic: [...], x11: [...] }
与options.pick
相反。
var names = namer ( color , { omit : [ 'pantone' , 'roygbiv' ] } )
// output: { basic: [...], html: [...], x11: [...], ntc: [...] }
如果是“deltaE”,则使用 Delta-E 距离函数,否则使用默认距离函数。
var names = namer ( color , { pick : [ 'basic' ] , distance : 'deltaE' } ) ;
// output: { basic: [...] }
npm install
npm test
麻省理工学院