Skip to content

Instantly share code, notes, and snippets.

@soichisumi
Last active August 20, 2018 10:19
Show Gist options
  • Save soichisumi/076e56240314de1c9da8da74b9e037b8 to your computer and use it in GitHub Desktop.
Save soichisumi/076e56240314de1c9da8da74b9e037b8 to your computer and use it in GitHub Desktop.
this script uses deltaE to compare the similarity of color. about deltaE: http://zschuessler.github.io/DeltaE/
const d3 = require('d3-color')
const deltaE = require('delta-e')
// a, b ... color code without #. (ex: FFFFFF)
function getDeltaE(a, b){
ar = a.substr(0, 2)
ar = parseInt(ar, 16)
ag = a.substr(2, 2)
ag = parseInt(ag, 16)
ab = a.substr(4, 2)
ab = parseInt(ab, 16)
d3A = d3.rgb(ar, ag, ab)
labA = d3.lab(d3A)
console.log(labA)
br = b.substr(0, 2)
br = parseInt(br, 16)
bg = b.substr(2, 2)
bg = parseInt(bg, 16)
bb = b.substr(4, 2)
bb = parseInt(bb, 16)
d3B = d3.rgb(br, bg, bb)
labB = d3.lab(d3B)
console.log(labB)
return deltaE.getDeltaE00({L: labA.l, A: labA.a, B: labA.b}, {L: labB.l, A: labB.a, B: labB.b})
}
// a, b ... color code without #. (ex: FFFFFF)
function getSqurRoot(a, b){
ar = a.substr(0, 2)
ar = parseInt(ar, 16)
ag = a.substr(2, 2)
ag = parseInt(ag, 16)
ab = a.substr(4, 2)
ab = parseInt(ab, 16)
console.log(`r:${ar}, g:${ag}, b:${ab}`)
br = b.substr(0, 2)
br = parseInt(br, 16)
bg = b.substr(2, 2)
bg = parseInt(bg, 16)
bb = b.substr(4, 2)
bb = parseInt(bb, 16)
console.log(`r:${br}, g:${bg}, b:${bb}`)
return Math.sqrt(Math.pow(ar-br, 2) + Math.pow(ag-bg, 2) + Math.pow(ab-bb, 2))
}
// console.log(`dist:${getSqurRoot('FFFFFF','fbfcfc')}`)
console.log(`dist:${getDeltaE('FFFFFF','e1e1e1')}`)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment