Дайте мне цвет, и я назову его.
Color Namer — это пакет npm для использования в Node.js или браузере, который рассчитывает цветовое расстояние с использованием метода цветового различия Delta-E. Учитывая цвет в шестнадцатеричном формате RGB, RGBA, HSL или HSV, он преобразует цвет в цветовое пространство L a b*, а затем вычисляет евклидово расстояние цвета на основе набора цветов с известными именами.
Майк Босток, известный по D3, хорошо это объясняет:
Цветовые пространства 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
Массачусетский технологический институт