ให้ฉันสีแล้วฉันจะตั้งชื่อมัน
Color Namer เป็นแพ็คเกจ npm สำหรับใช้ใน Node.js หรือเบราว์เซอร์ที่คำนวณระยะห่างของสีโดยใช้เทคนิคความแตกต่างของสี Delta-E เมื่อกำหนดสีในรูปแบบ RGB, RGBA, HSL หรือ HSV เลขฐานสิบหก สีจะแปลงสีเป็นปริภูมิสี L a b* จากนั้นคำนวณระยะห่างแบบยุคลิดของสีจากชุดสีที่มีชื่อที่รู้จัก
Mike Bostock แห่งชื่อเสียงของ 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
เอ็มไอที