made with requirebin
Created
July 21, 2016 12:31
-
-
Save andytwoods/6571beb0ad3f00f0530adc76c4a56117 to your computer and use it in GitHub Desktop.
requirebin sketch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//https://github.com/Qix-/color-convert | |
var convert = require('color-convert'); | |
//https://github.com/zschuessler/DeltaE | |
var DeltaE = require('delta-e'); | |
function dist_hex(hex1, hex2){ | |
var lab1= convert.hex.lab.raw(hex1); | |
var lab2= convert.hex.lab.raw(hex2); | |
return DeltaE.getDeltaE00( clean_lab(lab1), clean_lab(lab2) ); | |
} | |
function clean_lab(arr){ | |
return {L:arr[0],A:arr[1], B:arr[2]} | |
} | |
var orig_list = "FB5760,FA0019,8D000E,5C65F7,29F6,178B,FC9765,FB5522,8E3414,A263F8,6327F6,3E158B,FFF86F,FFFC43,92902d,FA5DD9,FA00C1,8D006F,9FFE6E,69FE3F,3D8F24,8E5E3C,8E4116,5C2C0F,68FFE0,33FFC9,1D9174,FFFFFF,C6C6C6,909090,96FFFE,32FFFE,1C918F,5D5D5D,2E2E2E".split(","); | |
var all_cols = "994C00,993,9999,FF66E2,994C00,A2FF66,FFFB66,99693D,FF00CC,AD66FF,FFFFFF,997C,99007C,999999,FF0000,99,666666,999900,66FFE2,6666FF,663300,990000,6666FF,99693D,CCCCCC,333333,FF6666,997C,FF,66FF00,FFFF00,FFA466,0,470099,666666,FF6600,99,3C9900,66FF00,994C00,FFCC,333333,99007C,FFFF,6F00FF,9F6736,F9FF00,9E9B,FFCF,FF00,A300,A24400,23009B,4200FF,FF00CA,7647FF,8700FF,FBFF5A,53FB39,93603A,3.18E+22,FF65DA,FFFC3A,622AF8,5664F9,FF180B,934511,FF605E,FDC9,FFF86B,FF9B62,9.18E+23,3E188C,2E2E2E,178C,29F8,87FEFF,96FB6B,5D5D5D,FFFCC7,4DFDE0,909090,94000000,6F00FF,66FFE2,99FFFF,99,9999,993,75FFE3,6666FF,3C9900,D4AFFF,666666,FF1CD2,333333,470099,663300,99,990000,993,3C9900,990000,997C,FFAFF0,999900,99,DCDCA7,470099,994C00,FFFF9F,997C,9999,99007C,99693D,480097,979700,4FECA,6E00FF,977B,363636,FF6500,3E9700,FFFE00,4FEFF,97,FFA265,FFFA65,653600,97683F,97007B,653600,6565FF,656565,AB65FF,65FEE1,6565FF,65FE00,99007C,FAFF00,969,86FF69,FF34DF,9D6838,9F7E,FF20,333333,FCFF61,FFD0,12FFE5,1E009A,FFA05D,7249FF,3900FF,FF515B,A20000,52009A,BA3FFF,FF5600,86FF69,8200FF,A10E,99693D,FFCFAF,9999,993,994C00,FDCE,606060,B167F6,FF0A00,FF6107,C9C9C9,A04905,FF9F65,9D6342,937D,FF19C2,9222,FC4B,5866F6,6BFEFF,FF67D8,A14003,19F5,FFFC4A,969320,949494,2D2D2D,999900,997C,470099,99693D,9999,FF6507,984B03,FFA367,987C,3A980D,FEFE1F,98980D,9898,63FE1E,FF0302,980100,FEFA69,98683D,323232,9898,A0FE69,6767FD,AD67FD,120EFD,470597,CBCBCB,700FFD,99047A,989898,60597,65FEE2,FF67E0,98980D,987C,470597,FF0CCA,9999,994C00,99693D,990000,666666,9925,AD0000,D0CDC7,A94700,FFFF25,FF00C1,9925,AC0070,5FD,6165FD,FFCE,FFFB63,190,9925,190,FF5955,FF5800,343535,343535,FF3E,7700FD,9A9691,919191,75FFE3,A2A217,FFC49C,99,DFFFF8,D1AFFF,99007C,FFAEEF,C9B099,FCFCF9,993,663300,F40009,F6FF22,744BFC,62FF1A,9CFF66,F8FF68,1B0092,9FFFFE,F5610C,AF4BFC,74FFDF,F6A164,3F9808,7C00FC,4B0093,62FF1A,666666,FC0D1B,FFF971,FDA46C,FFFD38,471296,333333,9DFFFE,FC20CA,2DFFFE,409818,6F25FB,A5FD6F,FC6621,6EFEE2,FD6769,999999,FD6BE0,2BFECD,2DFFFE,AC6CFC,6EFEE2,676BFB,169998,16987C,FCFF00,FF00CE,A200,BD41FF,3000FF,AA007E,53009F,A1672F,FF32E5,FF9F4F,1800A0,FFFFA7,FDF9F9,FAFDF9,9999,C1C165,ADADFF,999999,99693D,997C,993,994C00,990000,FFFF94,990000,7F1CFF,333333,A21717,ECFFDF,8C8C8C,FEFEFE".split(","); | |
var col; | |
var nearest; | |
var nearestCols = []; | |
for(var i=0;i<all_cols.length;i++){ | |
col = all_cols[i]; | |
nearest = find_nearest(col,orig_list); | |
nearestCols.push(nearest); | |
} | |
console.log(nearestCols.join("/n")); | |
function find_nearest(col, list){ | |
var smallest = 100000; | |
var smallest_id = ''; | |
var current_id; | |
var current_val; | |
for(var i=0;i<list.length;i++){ | |
current_id = list[i]; | |
current_val = dist_hex(col, current_id); | |
if(current_val < smallest){ | |
smallest = current_val; | |
smallest_id = current_id; | |
} | |
} | |
return smallest_id; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
setTimeout(function(){require=function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s}({1:[function(require,module,exports){var cssKeywords=require("./css-keywords");var reverseKeywords={};for(var key in cssKeywords){if(cssKeywords.hasOwnProperty(key)){reverseKeywords[cssKeywords[key].join()]=key}}var convert=module.exports={rgb:{channels:3},hsl:{channels:3},hsv:{channels:3},hwb:{channels:3},cmyk:{channels:4},xyz:{channels:3},lab:{channels:3},lch:{channels:3},hex:{channels:1},keyword:{channels:1},ansi16:{channels:1},ansi256:{channels:1},hcg:{channels:3},apple:{channels:3}};for(var model in convert){if(convert.hasOwnProperty(model)){if(!("channels"in convert[model])){throw new Error("missing channels property: "+model)}var channels=convert[model].channels;delete convert[model].channels;Object.defineProperty(convert[model],"channels",{value:channels})}}convert.rgb.hsl=function(rgb){var r=rgb[0]/255;var g=rgb[1]/255;var b=rgb[2]/255;var min=Math.min(r,g,b);var max=Math.max(r,g,b);var delta=max-min;var h;var s;var l;if(max===min){h=0}else if(r===max){h=(g-b)/delta}else if(g===max){h=2+(b-r)/delta}else if(b===max){h=4+(r-g)/delta}h=Math.min(h*60,360);if(h<0){h+=360}l=(min+max)/2;if(max===min){s=0}else if(l<=.5){s=delta/(max+min)}else{s=delta/(2-max-min)}return[h,s*100,l*100]};convert.rgb.hsv=function(rgb){var r=rgb[0];var g=rgb[1];var b=rgb[2];var min=Math.min(r,g,b);var max=Math.max(r,g,b);var delta=max-min;var h;var s;var v;if(max===0){s=0}else{s=delta/max*1e3/10}if(max===min){h=0}else if(r===max){h=(g-b)/delta}else if(g===max){h=2+(b-r)/delta}else if(b===max){h=4+(r-g)/delta}h=Math.min(h*60,360);if(h<0){h+=360}v=max/255*1e3/10;return[h,s,v]};convert.rgb.hwb=function(rgb){var r=rgb[0];var g=rgb[1];var b=rgb[2];var h=convert.rgb.hsl(rgb)[0];var w=1/255*Math.min(r,Math.min(g,b));b=1-1/255*Math.max(r,Math.max(g,b));return[h,w*100,b*100]};convert.rgb.cmyk=function(rgb){var r=rgb[0]/255;var g=rgb[1]/255;var b=rgb[2]/255;var c;var m;var y;var k;k=Math.min(1-r,1-g,1-b);c=(1-r-k)/(1-k)||0;m=(1-g-k)/(1-k)||0;y=(1-b-k)/(1-k)||0;return[c*100,m*100,y*100,k*100]};convert.rgb.keyword=function(rgb){return reverseKeywords[rgb.join()]};convert.keyword.rgb=function(keyword){return cssKeywords[keyword]};convert.rgb.xyz=function(rgb){var r=rgb[0]/255;var g=rgb[1]/255;var b=rgb[2]/255;r=r>.04045?Math.pow((r+.055)/1.055,2.4):r/12.92;g=g>.04045?Math.pow((g+.055)/1.055,2.4):g/12.92;b=b>.04045?Math.pow((b+.055)/1.055,2.4):b/12.92;var x=r*.4124+g*.3576+b*.1805;var y=r*.2126+g*.7152+b*.0722;var z=r*.0193+g*.1192+b*.9505;return[x*100,y*100,z*100]};convert.rgb.lab=function(rgb){var xyz=convert.rgb.xyz(rgb);var x=xyz[0];var y=xyz[1];var z=xyz[2];var l;var a;var b;x/=95.047;y/=100;z/=108.883;x=x>.008856?Math.pow(x,1/3):7.787*x+16/116;y=y>.008856?Math.pow(y,1/3):7.787*y+16/116;z=z>.008856?Math.pow(z,1/3):7.787*z+16/116;l=116*y-16;a=500*(x-y);b=200*(y-z);return[l,a,b]};convert.hsl.rgb=function(hsl){var h=hsl[0]/360;var s=hsl[1]/100;var l=hsl[2]/100;var t1;var t2;var t3;var rgb;var val;if(s===0){val=l*255;return[val,val,val]}if(l<.5){t2=l*(1+s)}else{t2=l+s-l*s}t1=2*l-t2;rgb=[0,0,0];for(var i=0;i<3;i++){t3=h+1/3*-(i-1);if(t3<0){t3++}if(t3>1){t3--}if(6*t3<1){val=t1+(t2-t1)*6*t3}else if(2*t3<1){val=t2}else if(3*t3<2){val=t1+(t2-t1)*(2/3-t3)*6}else{val=t1}rgb[i]=val*255}return rgb};convert.hsl.hsv=function(hsl){var h=hsl[0];var s=hsl[1]/100;var l=hsl[2]/100;var sv;var v;if(l===0){return[0,0,0]}l*=2;s*=l<=1?l:2-l;v=(l+s)/2;sv=2*s/(l+s);return[h,sv*100,v*100]};convert.hsv.rgb=function(hsv){var h=hsv[0]/60;var s=hsv[1]/100;var v=hsv[2]/100;var hi=Math.floor(h)%6;var f=h-Math.floor(h);var p=255*v*(1-s);var q=255*v*(1-s*f);var t=255*v*(1-s*(1-f));v*=255;switch(hi){case 0:return[v,t,p];case 1:return[q,v,p];case 2:return[p,v,t];case 3:return[p,q,v];case 4:return[t,p,v];case 5:return[v,p,q]}};convert.hsv.hsl=function(hsv){var h=hsv[0];var s=hsv[1]/100;var v=hsv[2]/100;var sl;var l;l=(2-s)*v;sl=s*v;sl/=l<=1?l:2-l;sl=sl||0;l/=2;return[h,sl*100,l*100]};convert.hwb.rgb=function(hwb){var h=hwb[0]/360;var wh=hwb[1]/100;var bl=hwb[2]/100;var ratio=wh+bl;var i;var v;var f;var n;if(ratio>1){wh/=ratio;bl/=ratio}i=Math.floor(6*h);v=1-bl;f=6*h-i;if((i&1)!==0){f=1-f}n=wh+f*(v-wh);var r;var g;var b;switch(i){default:case 6:case 0:r=v;g=n;b=wh;break;case 1:r=n;g=v;b=wh;break;case 2:r=wh;g=v;b=n;break;case 3:r=wh;g=n;b=v;break;case 4:r=n;g=wh;b=v;break;case 5:r=v;g=wh;b=n;break}return[r*255,g*255,b*255]};convert.cmyk.rgb=function(cmyk){var c=cmyk[0]/100;var m=cmyk[1]/100;var y=cmyk[2]/100;var k=cmyk[3]/100;var r;var g;var b;r=1-Math.min(1,c*(1-k)+k);g=1-Math.min(1,m*(1-k)+k);b=1-Math.min(1,y*(1-k)+k);return[r*255,g*255,b*255]};convert.xyz.rgb=function(xyz){var x=xyz[0]/100;var y=xyz[1]/100;var z=xyz[2]/100;var r;var g;var b;r=x*3.2406+y*-1.5372+z*-.4986;g=x*-.9689+y*1.8758+z*.0415;b=x*.0557+y*-.204+z*1.057;r=r>.0031308?1.055*Math.pow(r,1/2.4)-.055:r*=12.92;g=g>.0031308?1.055*Math.pow(g,1/2.4)-.055:g*=12.92;b=b>.0031308?1.055*Math.pow(b,1/2.4)-.055:b*=12.92;r=Math.min(Math.max(0,r),1);g=Math.min(Math.max(0,g),1);b=Math.min(Math.max(0,b),1);return[r*255,g*255,b*255]};convert.xyz.lab=function(xyz){var x=xyz[0];var y=xyz[1];var z=xyz[2];var l;var a;var b;x/=95.047;y/=100;z/=108.883;x=x>.008856?Math.pow(x,1/3):7.787*x+16/116;y=y>.008856?Math.pow(y,1/3):7.787*y+16/116;z=z>.008856?Math.pow(z,1/3):7.787*z+16/116;l=116*y-16;a=500*(x-y);b=200*(y-z);return[l,a,b]};convert.lab.xyz=function(lab){var l=lab[0];var a=lab[1];var b=lab[2];var x;var y;var z;var y2;if(l<=8){y=l*100/903.3;y2=7.787*(y/100)+16/116}else{y=100*Math.pow((l+16)/116,3);y2=Math.pow(y/100,1/3)}x=x/95.047<=.008856?x=95.047*(a/500+y2-16/116)/7.787:95.047*Math.pow(a/500+y2,3);z=z/108.883<=.008859?z=108.883*(y2-b/200-16/116)/7.787:108.883*Math.pow(y2-b/200,3);return[x,y,z]};convert.lab.lch=function(lab){var l=lab[0];var a=lab[1];var b=lab[2];var hr;var h;var c;hr=Math.atan2(b,a);h=hr*360/2/Math.PI;if(h<0){h+=360}c=Math.sqrt(a*a+b*b);return[l,c,h]};convert.lch.lab=function(lch){var l=lch[0];var c=lch[1];var h=lch[2];var a;var b;var hr;hr=h/360*2*Math.PI;a=c*Math.cos(hr);b=c*Math.sin(hr);return[l,a,b]};convert.rgb.ansi16=function(args){var r=args[0];var g=args[1];var b=args[2];var value=1 in arguments?arguments[1]:convert.rgb.hsv(args)[2];value=Math.round(value/50);if(value===0){return 30}var ansi=30+(Math.round(b/255)<<2|Math.round(g/255)<<1|Math.round(r/255));if(value===2){ansi+=60}return ansi};convert.hsv.ansi16=function(args){return convert.rgb.ansi16(convert.hsv.rgb(args),args[2])};convert.rgb.ansi256=function(args){var r=args[0];var g=args[1];var b=args[2];if(r===g&&g===b){if(r<8){return 16}if(r>248){return 231}return Math.round((r-8)/247*24)+232}var ansi=16+36*Math.round(r/255*5)+6*Math.round(g/255*5)+Math.round(b/255*5);return ansi};convert.ansi16.rgb=function(args){var color=args%10;if(color===0||color===7){if(args>50){color+=3.5}color=color/10.5*255;return[color,color,color]}var mult=(~~(args>50)+1)*.5;var r=(color&1)*mult*255;var g=(color>>1&1)*mult*255;var b=(color>>2&1)*mult*255;return[r,g,b]};convert.ansi256.rgb=function(args){if(args>=232){var c=(args-232)*10+8;return[c,c,c]}args-=16;var rem;var r=Math.floor(args/36)/5*255;var g=Math.floor((rem=args%36)/6)/5*255;var b=rem%6/5*255;return[r,g,b]};convert.rgb.hex=function(args){var integer=((Math.round(args[0])&255)<<16)+((Math.round(args[1])&255)<<8)+(Math.round(args[2])&255);var string=integer.toString(16).toUpperCase();return"000000".substring(string.length)+string};convert.hex.rgb=function(args){var match=args.toString(16).match(/[a-f0-9]{6}/i);if(!match){return[0,0,0]}var integer=parseInt(match[0],16);var r=integer>>16&255;var g=integer>>8&255;var b=integer&255;return[r,g,b]};convert.rgb.hcg=function(rgb){var r=rgb[0]/255;var g=rgb[1]/255;var b=rgb[2]/255;var max=Math.max(Math.max(r,g),b);var min=Math.min(Math.min(r,g),b);var chroma=max-min;var grayscale;var hue;if(chroma<1){grayscale=min/(1-chroma)}else{grayscale=0}if(chroma<=0){hue=0}else if(max===r){hue=(g-b)/chroma%6}else if(max===g){hue=2+(b-r)/chroma}else{hue=4+(r-g)/chroma+4}hue/=6;hue%=1;return[hue*360,chroma*100,grayscale*100]};convert.hsl.hcg=function(hsl){var s=hsl[1]/100;var l=hsl[2]/100;var c=1;var f=0;if(l<.5){c=2*s*l}else{c=2*s*(1-l)}if(c<1){f=(l-.5*c)/(1-c)}return[hsl[0],c*100,f*100]};convert.hsv.hcg=function(hsv){var s=hsv[1]/100;var v=hsv[2]/100;var c=s*v;var f=0;if(c<1){f=(v-c)/(1-c)}return[hsv[0],c*100,f*100]};convert.hcg.rgb=function(hcg){var h=hcg[0]/360;var c=hcg[1]/100;var g=hcg[2]/100;if(c===0){return[g*255,g*255,g*255]}var pure=[0,0,0];var hi=h%1*6;var v=hi%1;var w=1-v;var mg=0;switch(Math.floor(hi)){case 0:pure[0]=1;pure[1]=v;pure[2]=0;break;case 1:pure[0]=w;pure[1]=1;pure[2]=0;break;case 2:pure[0]=0;pure[1]=1;pure[2]=v;break;case 3:pure[0]=0;pure[1]=w;pure[2]=1;break;case 4:pure[0]=v;pure[1]=0;pure[2]=1;break;default:pure[0]=1;pure[1]=0;pure[2]=w}mg=(1-c)*g;return[(c*pure[0]+mg)*255,(c*pure[1]+mg)*255,(c*pure[2]+mg)*255]};convert.hcg.hsv=function(hcg){var c=hcg[1]/100;var g=hcg[2]/100;var v=c+g*(1-c);var f=0;if(v>0){f=c/v}return[hcg[0],f*100,v*100]};convert.hcg.hsl=function(hcg){var c=hcg[1]/100;var g=hcg[2]/100;var l=g*(1-c)+.5*c;var s=0;if(l>0&&l<.5){s=c/(2*l)}else if(l>=.5&&l<1){s=c/(2*(1-l))}return[hcg[0],s*100,l*100]};convert.hcg.hwb=function(hcg){var c=hcg[1]/100;var g=hcg[2]/100;var v=c+g*(1-c);return[hcg[0],(v-c)*100,(1-v)*100]};convert.hwb.hcg=function(hwb){var w=hwb[1]/100;var b=hwb[2]/100;var v=1-b;var c=v-w;var g=0;if(c<1){g=(v-c)/(1-c)}return[hwb[0],c*100,g*100]};convert.apple.rgb=function(apple){return[apple[0]/65535*255,apple[1]/65535*255,apple[2]/65535*255]};convert.rgb.apple=function(rgb){return[rgb[0]/255*65535,rgb[1]/255*65535,rgb[2]/255*65535]}},{"./css-keywords":2}],2:[function(require,module,exports){module.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},{}],3:[function(require,module,exports){var conversions=require("./conversions");var models=Object.keys(conversions);function buildGraph(){var graph={};for(var len=models.length,i=0;i<len;i++){graph[models[i]]={distance:-1,parent:null}}return graph}function deriveBFS(fromModel){var graph=buildGraph();var queue=[fromModel];graph[fromModel].distance=0;while(queue.length){var current=queue.pop();var adjacents=Object.keys(conversions[current]);for(var len=adjacents.length,i=0;i<len;i++){var adjacent=adjacents[i];var node=graph[adjacent];if(node.distance===-1){node.distance=graph[current].distance+1;node.parent=current;queue.unshift(adjacent)}}}return graph}function link(from,to){return function(args){return to(from(args))}}function wrapConversion(toModel,graph){var path=[graph[toModel].parent,toModel];var fn=conversions[graph[toModel].parent][toModel];var cur=graph[toModel].parent;while(graph[cur].parent){path.unshift(graph[cur].parent);fn=link(conversions[graph[cur].parent][cur],fn);cur=graph[cur].parent}fn.conversion=path;return fn}module.exports=function(fromModel){var graph=deriveBFS(fromModel);var conversion={};var models=Object.keys(graph);for(var len=models.length,i=0;i<len;i++){var toModel=models[i];var node=graph[toModel];if(node.parent===null){continue}conversion[toModel]=wrapConversion(toModel,graph)}return conversion}},{"./conversions":1}],"color-convert":[function(require,module,exports){var conversions=require("./conversions");var route=require("./route");var convert={};var models=Object.keys(conversions);function wrapRaw(fn){var wrappedFn=function(args){if(args===undefined||args===null){return args}if(arguments.length>1){args=Array.prototype.slice.call(arguments)}return fn(args)};if("conversion"in fn){wrappedFn.conversion=fn.conversion}return wrappedFn}function wrapRounded(fn){var wrappedFn=function(args){if(args===undefined||args===null){return args}if(arguments.length>1){args=Array.prototype.slice.call(arguments)}var result=fn(args);if(typeof result==="object"){for(var len=result.length,i=0;i<len;i++){result[i]=Math.round(result[i])}}return result};if("conversion"in fn){wrappedFn.conversion=fn.conversion}return wrappedFn}models.forEach(function(fromModel){convert[fromModel]={};Object.defineProperty(convert[fromModel],"channels",{value:conversions[fromModel].channels});var routes=route(fromModel);var routeModels=Object.keys(routes);routeModels.forEach(function(toModel){var fn=routes[toModel];convert[fromModel][toModel]=wrapRounded(fn);convert[fromModel][toModel].raw=wrapRaw(fn)})});module.exports=convert},{"./conversions":1,"./route":3}]},{},[]);require=function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s}({1:[function(require,module,exports){"use strict";function dE00(x1,x2,weights){var sqrt=Math.sqrt;var pow=Math.pow;this.x1=x1;this.x2=x2;this.weights=weights||{};this.ksubL=this.weights.lightness||1;this.ksubC=this.weights.chroma||1;this.ksubH=this.weights.hue||1;this.deltaLPrime=x2.L-x1.L;this.LBar=(x1.L+x2.L)/2;this.C1=sqrt(pow(x1.A,2)+pow(x1.B,2));this.C2=sqrt(pow(x2.A,2)+pow(x2.B,2));this.CBar=(this.C1+this.C2)/2;this.aPrime1=x1.A+x1.A/2*(1-sqrt(pow(this.CBar,7)/(pow(this.CBar,7)+pow(25,7))));this.aPrime2=x2.A+x2.A/2*(1-sqrt(pow(this.CBar,7)/(pow(this.CBar,7)+pow(25,7))));this.CPrime1=sqrt(pow(this.aPrime1,2)+pow(x1.B,2));this.CPrime2=sqrt(pow(this.aPrime2,2)+pow(x2.B,2));this.CBarPrime=(this.CPrime1+this.CPrime2)/2;this.deltaCPrime=this.CPrime2-this.CPrime1;this.SsubL=1+.015*pow(this.LBar-50,2)/sqrt(20+pow(this.LBar-50,2));this.SsubC=1+.045*this.CBarPrime;this.hPrime1=0;this.hPrime2=0;this.deltahPrime=0;this.deltaHPrime=0;this.HBarPrime=0;this.T=0;this.SsubH=0;this.RsubT=0}dE00.prototype.getDeltaE=function(){var sqrt=Math.sqrt;var sin=Math.sin;var pow=Math.pow;this.hPrime1=this.gethPrime1();this.hPrime2=this.gethPrime2();this.deltahPrime=this.getDeltahPrime();this.deltaHPrime=2*sqrt(this.CPrime1*this.CPrime2)*sin(this.degreesToRadians(this.deltahPrime)/2);this.HBarPrime=this.getHBarPrime();this.T=this.getT();this.SsubH=1+.015*this.CBarPrime*this.T;this.RsubT=this.getRsubT();var lightness=this.deltaLPrime/(this.ksubL*this.SsubL);var chroma=this.deltaCPrime/(this.ksubC*this.SsubC);var hue=this.deltaHPrime/(this.ksubH*this.SsubH);return sqrt(pow(lightness,2)+pow(chroma,2)+pow(hue,2)+this.RsubT*chroma*hue)};dE00.prototype.getRsubT=function(){var sin=Math.sin;var sqrt=Math.sqrt;var pow=Math.pow;var exp=Math.exp;return-2*sqrt(pow(this.CBarPrime,7)/(pow(this.CBarPrime,7)+pow(25,7)))*sin(this.degreesToRadians(60*exp(-pow((this.HBarPrime-275)/25,2))))};dE00.prototype.getT=function(){var cos=Math.cos;return 1-.17*cos(this.degreesToRadians(this.HBarPrime-30))+.24*cos(this.degreesToRadians(2*this.HBarPrime))+.32*cos(this.degreesToRadians(3*this.HBarPrime+6))-.2*cos(this.degreesToRadians(4*this.HBarPrime-63))};dE00.prototype.getHBarPrime=function(){var abs=Math.abs;if(abs(this.hPrime1-this.hPrime2)>180){return(this.hPrime1+this.hPrime2+360)/2}return(this.hPrime1+this.hPrime2)/2};dE00.prototype.getDeltahPrime=function(){var abs=Math.abs;if(0===this.C1||0===this.C2){return 0}if(abs(this.hPrime1-this.hPrime2)<=180){return this.hPrime2-this.hPrime1}if(this.hPrime2<=this.hPrime1){return this.hPrime2-this.hPrime1+360}else{return this.hPrime2-this.hPrime1-360}};dE00.prototype.gethPrime1=function(){return this._gethPrimeFn(this.x1.B,this.aPrime1)};dE00.prototype.gethPrime2=function(){return this._gethPrimeFn(this.x2.B,this.aPrime2)};dE00.prototype._gethPrimeFn=function(x,y){var hueAngle;if(x===0&&y===0){return 0}hueAngle=this.radiansToDegrees(Math.atan2(x,y));if(hueAngle>=0){return hueAngle}else{return hueAngle+360}};dE00.prototype.radiansToDegrees=function(radians){return radians*(180/Math.PI)};dE00.prototype.degreesToRadians=function(degrees){return degrees*(Math.PI/180)};module.exports=dE00},{}],2:[function(require,module,exports){"use strict";function dE76(x1,x2){this.x1=x1;this.x2=x2}dE76.prototype.getDeltaE=function(){var x1=this.x1;var x2=this.x2;return Math.sqrt(Math.pow(x2.L-x1.L,2)+Math.pow(x2.A-x1.A,2)+Math.pow(x2.B-x1.B,2))};module.exports=dE76},{}],3:[function(require,module,exports){"use strict";function dE94(x1,x2,weights){this.x1=x1;this.x2=x2;this.weights=weights||{};this.weights.lightness=this.weights.lightness||1;this.weights.chroma=this.weights.chroma||1;this.weights.hue=this.weights.hue||1;if(1===this.weights.lightness){this.weights.K1=.045;this.weights.K2=.015}else{this.weights.K1=.048;this.weights.K2=.014}}dE94.prototype.getDeltaE=function(){var x1=this.x1;var x2=this.x2;var sqrt=Math.sqrt;var pow=Math.pow;return sqrt(pow(this.calculateL(x1,x2),2)+pow(this.calculateA(x1,x2),2)+pow(this.calculateB(x1,x2),2))};dE94.prototype.calculateL=function(x1,x2){return(x1.L-x2.L)/this.weights.lightness};dE94.prototype.calculateA=function(x1,x2){var sqrt=Math.sqrt;var pow=Math.pow;var c1=sqrt(pow(x1.A,2)+pow(x1.B,2));var c2=sqrt(pow(x2.A,2)+pow(x2.B,2));var cab=c1-c2;var sc=1+this.weights.K1*c1;return cab/(this.weights.chroma*sc)};dE94.prototype.calculateB=function(x1,x2){var sqrt=Math.sqrt;var pow=Math.pow;var c1=sqrt(pow(x1.A,2)+pow(x1.B,2));var c2=sqrt(pow(x2.A,2)+pow(x2.B,2));var cab=c1-c2;var a=x1.A-x2.A;var b=x1.B-x2.B;var hab=sqrt(pow(a,2)+pow(b,2)-pow(cab,2));var c1=sqrt(pow(x1.A,2)+pow(x1.B,2));var sh=1+this.weights.K2*c1;return hab/sh};module.exports=dE94},{}],"delta-e":[function(require,module,exports){"use strict";var dE76=require("./dE76");var dE94=require("./dE94");var dE00=require("./dE00");function DeltaE(){}DeltaE.prototype.getDeltaE76=function(lab1,lab2){var deltaE=new dE76(lab1,lab2);return deltaE.getDeltaE()};DeltaE.prototype.getDeltaE94=function(lab1,lab2){var deltaE=new dE94(lab1,lab2);return deltaE.getDeltaE()};DeltaE.prototype.getDeltaE00=function(lab1,lab2){var deltaE=new dE00(lab1,lab2);return deltaE.getDeltaE()};module.exports=new DeltaE},{"./dE00":1,"./dE76":2,"./dE94":3}]},{},[]);var convert=require("color-convert");var DeltaE=require("delta-e");function dist_hex(hex1,hex2){var lab1=convert.hex.lab.raw(hex1);var lab2=convert.hex.lab.raw(hex2);return DeltaE.getDeltaE00(clean_lab(lab1),clean_lab(lab2))}function clean_lab(arr){return{L:arr[0],A:arr[1],B:arr[2]}}var orig_list="FB5760,FA0019,8D000E,5C65F7,29F6,178B,FC9765,FB5522,8E3414,A263F8,6327F6,3E158B,FFF86F,FFFC43,92902d,FA5DD9,FA00C1,8D006F,9FFE6E,69FE3F,3D8F24,8E5E3C,8E4116,5C2C0F,68FFE0,33FFC9,1D9174,FFFFFF,C6C6C6,909090,96FFFE,32FFFE,1C918F,5D5D5D,2E2E2E".split(",");var all_cols="994C00,993,9999,FF66E2,994C00,A2FF66,FFFB66,99693D,FF00CC,AD66FF,FFFFFF,997C,99007C,999999,FF0000,99,666666,999900,66FFE2,6666FF,663300,990000,6666FF,99693D,CCCCCC,333333,FF6666,997C,FF,66FF00,FFFF00,FFA466,0,470099,666666,FF6600,99,3C9900,66FF00,994C00,FFCC,333333,99007C,FFFF,6F00FF,9F6736,F9FF00,9E9B,FFCF,FF00,A300,A24400,23009B,4200FF,FF00CA,7647FF,8700FF,FBFF5A,53FB39,93603A,3.18E+22,FF65DA,FFFC3A,622AF8,5664F9,FF180B,934511,FF605E,FDC9,FFF86B,FF9B62,9.18E+23,3E188C,2E2E2E,178C,29F8,87FEFF,96FB6B,5D5D5D,FFFCC7,4DFDE0,909090,94000000,6F00FF,66FFE2,99FFFF,99,9999,993,75FFE3,6666FF,3C9900,D4AFFF,666666,FF1CD2,333333,470099,663300,99,990000,993,3C9900,990000,997C,FFAFF0,999900,99,DCDCA7,470099,994C00,FFFF9F,997C,9999,99007C,99693D,480097,979700,4FECA,6E00FF,977B,363636,FF6500,3E9700,FFFE00,4FEFF,97,FFA265,FFFA65,653600,97683F,97007B,653600,6565FF,656565,AB65FF,65FEE1,6565FF,65FE00,99007C,FAFF00,969,86FF69,FF34DF,9D6838,9F7E,FF20,333333,FCFF61,FFD0,12FFE5,1E009A,FFA05D,7249FF,3900FF,FF515B,A20000,52009A,BA3FFF,FF5600,86FF69,8200FF,A10E,99693D,FFCFAF,9999,993,994C00,FDCE,606060,B167F6,FF0A00,FF6107,C9C9C9,A04905,FF9F65,9D6342,937D,FF19C2,9222,FC4B,5866F6,6BFEFF,FF67D8,A14003,19F5,FFFC4A,969320,949494,2D2D2D,999900,997C,470099,99693D,9999,FF6507,984B03,FFA367,987C,3A980D,FEFE1F,98980D,9898,63FE1E,FF0302,980100,FEFA69,98683D,323232,9898,A0FE69,6767FD,AD67FD,120EFD,470597,CBCBCB,700FFD,99047A,989898,60597,65FEE2,FF67E0,98980D,987C,470597,FF0CCA,9999,994C00,99693D,990000,666666,9925,AD0000,D0CDC7,A94700,FFFF25,FF00C1,9925,AC0070,5FD,6165FD,FFCE,FFFB63,190,9925,190,FF5955,FF5800,343535,343535,FF3E,7700FD,9A9691,919191,75FFE3,A2A217,FFC49C,99,DFFFF8,D1AFFF,99007C,FFAEEF,C9B099,FCFCF9,993,663300,F40009,F6FF22,744BFC,62FF1A,9CFF66,F8FF68,1B0092,9FFFFE,F5610C,AF4BFC,74FFDF,F6A164,3F9808,7C00FC,4B0093,62FF1A,666666,FC0D1B,FFF971,FDA46C,FFFD38,471296,333333,9DFFFE,FC20CA,2DFFFE,409818,6F25FB,A5FD6F,FC6621,6EFEE2,FD6769,999999,FD6BE0,2BFECD,2DFFFE,AC6CFC,6EFEE2,676BFB,169998,16987C,FCFF00,FF00CE,A200,BD41FF,3000FF,AA007E,53009F,A1672F,FF32E5,FF9F4F,1800A0,FFFFA7,FDF9F9,FAFDF9,9999,C1C165,ADADFF,999999,99693D,997C,993,994C00,990000,FFFF94,990000,7F1CFF,333333,A21717,ECFFDF,8C8C8C,FEFEFE".split(",");var col;var nearest;var nearestCols=[];for(var i=0;i<all_cols.length;i++){col=all_cols[i];nearest=find_nearest(col,orig_list);nearestCols.push(nearest)}console.log(nearestCols.join("/n"));function find_nearest(col,list){var smallest=1e5;var smallest_id="";var current_id;var current_val;for(var i=0;i<list.length;i++){current_id=list[i];current_val=dist_hex(col,current_id);if(current_val<smallest){smallest=current_val;smallest_id=current_id}}return smallest_id}},0); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"name": "requirebin-sketch", | |
"version": "1.0.0", | |
"dependencies": { | |
"color-convert": "1.3.1", | |
"delta-e": "0.0.7" | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!-- contents of this file will be placed inside the <body> --> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!-- contents of this file will be placed inside the <head> --> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment