أعطني لونًا وسأسميه.
Color Namer عبارة عن حزمة npm للاستخدام في Node.js أو المتصفح الذي يحسب مسافة اللون باستخدام تقنية فرق اللون Delta-E. نظرًا للون بتنسيق Hexadecimal 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
معهد ماساتشوستس للتكنولوجيا