Geben Sie mir eine Farbe und ich gebe ihr einen Namen.
Color Namer ist ein npm-Paket zur Verwendung in Node.js oder dem Browser, das den Farbabstand mithilfe der Delta-E-Farbdifferenztechnik berechnet. Bei einer gegebenen Farbe im hexadezimalen RGB-, RGBA-, HSL- oder HSV-Format konvertiert es die Farbe in den L a b*-Farbraum und berechnet dann den euklidischen Abstand der Farbe aus einer Reihe von Farben mit bekannten Namen.
Mike Bostock von D3 erklärt es gut:
Lab- und HCL-Farbräume zeichnen sich dadurch aus, dass der wahrgenommene Unterschied zwischen zwei Farben proportional zu ihrem euklidischen Abstand im Farbraum ist. Diese besondere Eigenschaft, Wahrnehmungsgleichmäßigkeit genannt, macht sie ideal für die genaue visuelle Kodierung von Daten. Im Gegensatz dazu verzerren die bekannteren RGB- und HSL-Farbräume die Daten, wenn sie zur Visualisierung verwendet werden.
Die Farbnamen werden aus mehreren Listen abgeleitet:
npm install color-namer --save
Benötigen Sie das Modul:
var namer = require ( 'color-namer' )
var names = namer ( "#FF0000" )
Aus dem obigen Code ergibt sich, names
für jede Liste einen Schlüssel haben:
names.roygbiv
names.basic
names.html
names.x11
names.pantone
names.ntc
Jede Liste ist eine Reihe von Farben, sortiert nach ihrer wahrnehmungsmäßigen Ähnlichkeit mit der angegebenen Farbe:
[
{ 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
}
]
Andere Eingabeformate wie HSL, RGB und RGBA funktionieren ebenfalls:
name ( "hsl(50,100%,50%)" )
name ( "rgb(255,0,0)" )
name ( "rgba(255,0,0,1)" )
Mit dieser Option können wir Namen aus den dedizierten Listen ableiten, um die Berechnung zu beschleunigen.
var names = namer ( color , { pick : [ 'basic' , 'x11' ] } )
// output: { basic: [...], x11: [...] }
Das Gegenteil von options.pick
.
var names = namer ( color , { omit : [ 'pantone' , 'roygbiv' ] } )
// output: { basic: [...], html: [...], x11: [...], ntc: [...] }
Wenn „deltaE“, verwenden Sie die Delta-E-Distanzfunktion, andernfalls wird die Standarddistanzfunktion verwendet.
var names = namer ( color , { pick : [ 'basic' ] , distance : 'deltaE' } ) ;
// output: { basic: [...] }
npm install
npm test
MIT