Donnez-moi une couleur et je la nommerai.
Color Namer est un package npm à utiliser dans Node.js ou dans le navigateur qui calcule la distance des couleurs à l'aide de la technique de différence de couleur Delta-E. Étant donné une couleur au format hexadécimal RVB, RVBA, HSL ou HSV, il convertit la couleur dans l'espace colorimétrique L a b*, puis calcule la distance euclidienne de la couleur à partir d'un ensemble de couleurs portant des noms connus.
Mike Bostock, célèbre en D3, l'explique bien :
Les espaces colorimétriques Lab et HCL sont particuliers dans la mesure où la différence perçue entre deux couleurs est proportionnelle à leur distance euclidienne dans l'espace colorimétrique. Cette propriété spéciale, appelée uniformité perceptuelle, les rend idéales pour un codage visuel précis des données. En revanche, les espaces colorimétriques RVB et HSL, plus familiers, déforment les données lorsqu'ils sont utilisés pour la visualisation.
Les noms de couleurs sont dérivés de plusieurs listes :
npm install color-namer --save
Nécessite le module :
var namer = require ( 'color-namer' )
var names = namer ( "#FF0000" )
À partir du code ci-dessus, names
auront une clé pour chaque liste :
names.roygbiv
names.basic
names.html
names.x11
names.pantone
names.ntc
Chaque liste est un tableau de couleurs, triées selon leur similarité perceptuelle avec la couleur donnée :
[
{ 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
}
]
D'autres formats d'entrée fonctionnent également comme HSL, RVB et RGBA :
name ( "hsl(50,100%,50%)" )
name ( "rgb(255,0,0)" )
name ( "rgba(255,0,0,1)" )
Cette option nous permet de dériver les noms des listes dédiées pour un calcul plus rapide.
var names = namer ( color , { pick : [ 'basic' , 'x11' ] } )
// output: { basic: [...], x11: [...] }
Le contraire de options.pick
.
var names = namer ( color , { omit : [ 'pantone' , 'roygbiv' ] } )
// output: { basic: [...], html: [...], x11: [...], ntc: [...] }
Si « deltaE », utilisez la fonction de distance Delta-E, sinon utilise la fonction de distance par défaut.
var names = namer ( color , { pick : [ 'basic' ] , distance : 'deltaE' } ) ;
// output: { basic: [...] }
npm install
npm test
MIT