Dame un color y le pondré un nombre.
Color Namer es un paquete npm para usar en Node.js o el navegador que calcula la distancia de color utilizando la técnica de diferencia de color Delta-E. Dado un color en formato hexadecimal RGB, RGBA, HSL o HSV, convierte el color al espacio de color L a b* y luego calcula la distancia euclidiana del color a partir de un conjunto de colores con nombres conocidos.
Mike Bostock, famoso por D3, lo explica bien:
Los espacios de color Lab y HCL son especiales porque la diferencia percibida entre dos colores es proporcional a su distancia euclidiana en el espacio de color. Esta propiedad especial, llamada uniformidad perceptiva, los hace ideales para la codificación visual precisa de datos. Por el contrario, los espacios de color RGB y HSL, más familiares, distorsionan los datos cuando se utilizan para visualización.
Los nombres de los colores se derivan de varias listas:
npm install color-namer --save
Requerir el módulo:
var namer = require ( 'color-namer' )
var names = namer ( "#FF0000" )
Del código anterior, names
tendrán una clave para cada lista:
names.roygbiv
names.basic
names.html
names.x11
names.pantone
names.ntc
Cada lista es una serie de colores, ordenados por su similitud perceptiva con el color dado:
[
{ 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
}
]
Otros formatos de entrada también funcionan como HSL, RGB y RGBA:
name ( "hsl(50,100%,50%)" )
name ( "rgb(255,0,0)" )
name ( "rgba(255,0,0,1)" )
Esta opción nos permite derivar nombres de las listas dedicadas para un cálculo más rápido.
var names = namer ( color , { pick : [ 'basic' , 'x11' ] } )
// output: { basic: [...], x11: [...] }
Lo contrario de options.pick
.
var names = namer ( color , { omit : [ 'pantone' , 'roygbiv' ] } )
// output: { basic: [...], html: [...], x11: [...], ntc: [...] }
Si es 'deltaE', utilice la función de distancia Delta-E; de lo contrario, utilice la función de distancia predeterminada.
var names = namer ( color , { pick : [ 'basic' ] , distance : 'deltaE' } ) ;
// output: { basic: [...] }
npm install
npm test
MIT