Beri aku warna dan aku akan menamainya.
Color Namer adalah paket npm untuk digunakan di Node.js atau browser yang menghitung jarak warna menggunakan teknik perbedaan warna Delta-E. Jika diberi warna dalam format RGB Heksadesimal, RGBA, HSL, atau HSV, warna tersebut akan diubah menjadi ruang warna L a b*, lalu menghitung jarak Euclidean warna tersebut dari sekumpulan warna dengan nama yang dikenal.
Mike Bostock dari ketenaran D3 menjelaskannya dengan baik:
Ruang warna Lab dan HCL istimewa karena perbedaan yang dirasakan antara dua warna sebanding dengan jarak Euclidean dalam ruang warna. Properti khusus ini, yang disebut keseragaman persepsi, menjadikannya ideal untuk pengkodean data visual yang akurat. Sebaliknya, ruang warna RGB dan HSL yang lebih familiar mendistorsi data saat digunakan untuk visualisasi.
Nama warna berasal dari beberapa daftar:
npm install color-namer --save
Memerlukan modul:
var namer = require ( 'color-namer' )
var names = namer ( "#FF0000" )
Dari kode di atas, names
akan memiliki kunci untuk setiap daftar:
names.roygbiv
names.basic
names.html
names.x11
names.pantone
names.ntc
Setiap daftar adalah serangkaian warna, diurutkan berdasarkan kemiripan persepsinya dengan warna tertentu:
[
{ 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
}
]
Format input lain juga berfungsi seperti HSL, RGB, dan RGBA:
name ( "hsl(50,100%,50%)" )
name ( "rgb(255,0,0)" )
name ( "rgba(255,0,0,1)" )
Opsi ini memungkinkan kita mendapatkan nama dari daftar khusus untuk komputasi yang lebih cepat.
var names = namer ( color , { pick : [ 'basic' , 'x11' ] } )
// output: { basic: [...], x11: [...] }
Kebalikan dari options.pick
.
var names = namer ( color , { omit : [ 'pantone' , 'roygbiv' ] } )
// output: { basic: [...], html: [...], x11: [...], ntc: [...] }
Jika 'deltaE', gunakan fungsi jarak Delta-E, jika tidak, gunakan fungsi jarak default.
var names = namer ( color , { pick : [ 'basic' ] , distance : 'deltaE' } ) ;
// output: { basic: [...] }
npm install
npm test
MIT