color-space
Version:
Collection of color space conversions
2 lines (1 loc) • 29.3 kB
JavaScript
var O0={name:"rgb",min:[0,0,0],max:[255,255,255],channel:["red","green","blue"],alias:["RGB"]},f=O0,W0={name:"hsl",min:[0,0,0],max:[360,100,100],channel:["hue","saturation","lightness"],alias:["HSL"],rgb:function(r){var a=r[0]/360,n=r[1]/100,t=r[2]/100,e,v,u,h,i,c=0;if(n===0)return i=t*255,[i,i,i];for(v=t<.5?t*(1+n):t+n-t*n,e=2*t-v,h=[0,0,0];c<3;)u=a+1/3*-(c-1),u<0?u++:u>1&&u--,i=6*u<1?e+(v-e)*6*u:2*u<1?v:3*u<2?e+(v-e)*(2/3-u)*6:e,h[c++]=i*255;return h}},L=W0;f.hsl=function(r){var a=r[0]/255,n=r[1]/255,t=r[2]/255,e=Math.min(a,n,t),v=Math.max(a,n,t),u=v-e,h,i,c;return v===e?h=0:a===v?h=(n-t)/u:n===v?h=2+(t-a)/u:t===v&&(h=4+(a-n)/u),h=Math.min(h*60,360),h<0&&(h+=360),c=(e+v)/2,v===e?i=0:c<=.5?i=u/(v+e):i=u/(2-v-e),[h,i*100,c*100]};var N0={name:"hsv",min:[0,0,0],max:[360,100,100],channel:["hue","saturation","value"],alias:["HSV","HSB"],rgb:function(r){var a=r[0]/60,n=r[1]/100,t=r[2]/100,e=Math.floor(a)%6,v=a-Math.floor(a),u=255*t*(1-n),h=255*t*(1-n*v),i=255*t*(1-n*(1-v));switch(t*=255,e){case 0:return[t,i,u];case 1:return[h,t,u];case 2:return[u,t,i];case 3:return[u,h,t];case 4:return[i,u,t];case 5:return[t,u,h]}},hsl:function(r){var a=r[0],n=r[1]/100,t=r[2]/100,e,v;return v=(2-n)*t,e=n*t,e/=v<=1?v:2-v,e=e||0,v/=2,[a,e*100,v*100]}},D=N0;f.hsv=function(r){var a=r[0],n=r[1],t=r[2],e=Math.min(a,n,t),v=Math.max(a,n,t),u=v-e,h,i,c;return v===0?i=0:i=u/v*100,v===e?h=0:a===v?h=(n-t)/u:n===v?h=2+(t-a)/u:t===v&&(h=4+(a-n)/u),h=Math.min(h*60,360),h<0&&(h+=360),c=v/255*1e3/10,[h,i,c]},L.hsv=function(r){var a=r[0],n=r[1]/100,t=r[2]/100,e,v;return t*=2,n*=t<=1?t:2-t,v=(t+n)/2,e=2*n/(t+n)||0,[a,e*100,v*100]};var e0={name:"hsi",min:[0,0,0],max:[360,100,255],channel:["hue","saturation","intensity"],alias:["HSI"]},Q0=e0;e0.rgb=function(r){var a=(r[0]<0?r[0]%360+360:r[0]%360)*Math.PI/180,n=Math.max(0,Math.min(r[1],100))/100,t=Math.max(0,Math.min(r[2],255))/255,e=Math.PI/3,v,u,h;return a<2*e?(h=t*(1-n),v=t*(1+n*Math.cos(a)/Math.cos(e-a)),u=t*(1+n*(1-Math.cos(a)/Math.cos(e-a)))):a<4*e?(a=a-2*e,v=t*(1-n),u=t*(1+n*Math.cos(a)/Math.cos(e-a)),h=t*(1+n*(1-Math.cos(a)/Math.cos(e-a)))):(a=a-4*e,u=t*(1-n),h=t*(1+n*Math.cos(a)/Math.cos(e-a)),v=t*(1+n*(1-Math.cos(a)/Math.cos(e-a)))),[v*255,u*255,h*255]},f.hsi=function(r){var a=r[0]+r[1]+r[2],n=r[0]/a,t=r[1]/a,e=r[2]/a,v=Math.acos(.5*(n-t+(n-e))/Math.sqrt((n-t)*(n-t)+(n-e)*(t-e)));e>t&&(v=2*Math.PI-v);var u=1-3*Math.min(n,t,e),h=a/3;return[v*180/Math.PI,u*100,h]};var v0={name:"hwb",min:[0,0,0],max:[360,100,100],channel:["hue","whiteness","blackness"],alias:["HWB"],rgb:function(r){var a=r[0]/360,n=r[1]/100,t=r[2]/100,e=n+t,v,u,h,i,c,s,l;switch(e>1&&(n/=e,t/=e),v=Math.floor(6*a),u=1-t,h=6*a-v,v&1&&(h=1-h),i=n+h*(u-n),v){default:case 6:case 0:c=u,s=i,l=n;break;case 1:c=i,s=u,l=n;break;case 2:c=n,s=u,l=i;break;case 3:c=n,s=i,l=u;break;case 4:c=i,s=n,l=u;break;case 5:c=u,s=n,l=i;break}return[c*255,s*255,l*255]},hsv:function(r){var a=r[0],n=r[1],t=r[2],e,v;return n+t>=100?(e=0,v=100*n/(n+t)):(e=100-n/(1-t/100),v=100-t),[a,e,v]},hsl:function(r){return D.hsl(v0.hsv(r))}},u0=v0;f.hwb=function(r){var a=r[0],n=r[1],t=r[2],e=f.hsl(r)[0],v=1/255*Math.min(a,Math.min(n,t));return t=1-1/255*Math.max(a,Math.max(n,t)),[e,v*100,t*100]},D.hwb=function(r){var a=r[0],n=r[1],t=r[2];return[a,t===0?0:t*(1-n/100),100-t]},L.hwb=function(r){return D.hwb(L.hsv(r))};var J0={name:"cmyk",min:[0,0,0,0],max:[100,100,100,100],channel:["cyan","magenta","yellow","black"],alias:["CMYK"],rgb:r=>{let a=r[0]/100,n=r[1]/100,t=r[2]/100,e=r[3]/100,v,u,h;return v=1-Math.min(1,a*(1-e)+e),u=1-Math.min(1,n*(1-e)+e),h=1-Math.min(1,t*(1-e)+e),[v*255,u*255,h*255]}};f.cmyk=r=>{let a=r[0]/255,n=r[1]/255,t=r[2]/255,e,v,u,h;return h=Math.min(1-a,1-n,1-t),e=(1-a-h)/(1-h)||0,v=(1-n-h)/(1-h)||0,u=(1-t-h)/(1-h)||0,[e*100,v*100,u*100,h*100]};var $0=J0,h0={name:"cmy",min:[0,0,0],max:[100,100,100],channel:["cyan","magenta","yellow"],alias:["CMY"]};h0.rgb=([r,a,n])=>[(1-r/100)*255,(1-a/100)*255,(1-n/100)*255],f.cmy=([r,a,n])=>[(1-r/255)*100||0,(1-a/255)*100||0,(1-n/255)*100||0];var a1=h0,C={name:"xyz",min:[0,0,0],channel:["X","Y","Z"],alias:["XYZ","ciexyz","cie1931"],whitepoint:{2:{A:[109.85,100,35.585],C:[98.074,100,118.232],D50:[96.422,100,82.521],D55:[95.682,100,92.149],D65:[95.045592705167,100,108.9057750759878],D75:[94.972,100,122.638],F2:[99.187,100,67.395],F7:[95.044,100,108.755],F11:[100.966,100,64.37],E:[100,100,100]},10:{A:[111.144,100,35.2],C:[97.285,100,116.145],D50:[96.72,100,81.427],D55:[95.799,100,90.926],D65:[94.811,100,107.304],D75:[94.416,100,120.641],F2:[103.28,100,69.026],F7:[95.792,100,107.687],F11:[103.866,100,65.627],E:[100,100,100]}}};C.max=C.whitepoint[2].D65,C.rgb=function(r,a){a=a||C.whitepoint[2].E;var n=r[0]/a[0],t=r[1]/a[1],e=r[2]/a[2],v,u,h;return v=n*3.240969941904521+t*-1.537383177570093+e*-.498610760293,u=n*-.96924363628087+t*1.87596750150772+e*.041555057407175,h=n*.055630079696993+t*-.20397695888897+e*1.056971514242878,v=v>.0031308?1.055*Math.pow(v,1/2.4)-.055:v=v*12.92,u=u>.0031308?1.055*Math.pow(u,1/2.4)-.055:u=u*12.92,h=h>.0031308?1.055*Math.pow(h,1/2.4)-.055:h=h*12.92,v=Math.min(Math.max(0,v),1),u=Math.min(Math.max(0,u),1),h=Math.min(Math.max(0,h),1),[v*255,u*255,h*255]},f.xyz=function(r,a){var n=r[0]/255,t=r[1]/255,e=r[2]/255;n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92,t=t>.04045?Math.pow((t+.055)/1.055,2.4):t/12.92,e=e>.04045?Math.pow((e+.055)/1.055,2.4):e/12.92;var v=n*.41239079926595+t*.35758433938387+e*.18048078840183,u=n*.21263900587151+t*.71516867876775+e*.072192315360733,h=n*.019330818715591+t*.11919477979462+e*.95053215224966;return a=a||C.whitepoint[2].E,[v*a[0],u*a[1],h*a[2]]};var o=C,i0={name:"xyy",min:[0,0,0],max:[1,1,100],channel:["x","y","Y"],alias:["xyY","Yxy","yxy"]};i0.xyz=function(r){var a,n,t,e,v;return e=r[0],v=r[1],n=r[2],v===0?[0,0,0]:(a=e*n/v,t=(1-e-v)*n/v,[a,n,t])},o.xyy=function(r){var a,n,t,e;return n=r[0],t=r[1],e=r[2],a=n+t+e,a===0?[0,0,t]:[n/a,t/a,t]};var k=i0,c0={name:"yiq",min:[0,-.5957,-.5226],max:[1,.5957,.5226],channel:["Y","I","Q"],alias:["YIQ"]};c0.rgb=function(r){var a=r[0],n=r[1],t=r[2],e,v,u;return e=a*1+n*.956+t*.621,v=a*1+n*-.272+t*-.647,u=a*1+n*-1.108+t*1.705,e=Math.min(Math.max(0,e),1),v=Math.min(Math.max(0,v),1),u=Math.min(Math.max(0,u),1),[e*255,v*255,u*255]},f.yiq=function(r){var a=r[0]/255,n=r[1]/255,t=r[2]/255,e=a*.299+n*.587+t*.114,v=0,u=0;return(a!==n||n!==t)&&(v=a*.596+n*-.275+t*-.321,u=a*.212+n*-.528+t*.311),[e,v,u]};var r1=c0,s0={name:"yuv",min:[0,-.5,-.5],max:[1,.5,.5],channel:["Y","U","V"],alias:["YUV","EBU"]};s0.rgb=function(r){var a=r[0],n=r[1],t=r[2],e,v,u;return e=a*1+n*0+t*1.13983,v=a*1+n*-.39465+t*-.5806,u=a*1+n*2.02311+t*0,e=Math.min(Math.max(0,e),1),v=Math.min(Math.max(0,v),1),u=Math.min(Math.max(0,u),1),[e*255,v*255,u*255]},f.yuv=function(r){var a=r[0]/255,n=r[1]/255,t=r[2]/255,e=a*.299+n*.587+t*.114,v=a*-.14713+n*-.28886+t*.436,u=a*.615+n*-.51499+t*-.10001;return[e,v,u]};var l0=s0,j={name:"ydbdr",min:[0,-1.333,-1.333],max:[1,1.333,1.333],channel:["Y","Db","Dr"],alias:["YDbDr"]};j.rgb=function(r){var a=r[0],n=r[1],t=r[2],e=a+92303716148e-15*n-.525912630661865*t,v=a-.129132898890509*n+.267899328207599*t,u=a+.664679059978955*n-79202543533e-15*t;return[e*255,v*255,u*255]},f.ydbdr=function(r){var a=r[0]/255,n=r[1]/255,t=r[2]/255;return[.299*a+.587*n+.114*t,-.45*a-.883*n+1.333*t,-1.333*a+1.116*n+.217*t]},l0.ydbdr=function(r){return[r[0],3.059*r[1],-2.169*r[2]]},j.yuv=function(r){return[r[0],r[1]/3.059,-r[2]/2.169]};var n1=j,o0={name:"ycgco",min:[0,-.5,-.5],max:[1,.5,.5],channel:["Y","Cg","Co"],alias:["YCgCo"]};o0.rgb=function(r){var a=r[0],n=r[1],t=r[2],e=a-n;return[(e+t)*255,(a+n)*255,(e-t)*255]},f.ycgco=function(r){var a=r[0]/255,n=r[1]/255,t=r[2]/255;return[.25*a+.5*n+.25*t,-.25*a+.5*n-.25*t,.5*a-.5*t]};var t1=o0,f0={name:"ypbpr",min:[0,-.5,-.5],max:[1,.5,.5],channel:["Y","Pb","Pr"],alias:["YPbPr","Y/PB/PR","YPRPB","PRPBY","PBPRY","Y/Pb/Pr","YPrPb","PrPbY","PbPrY","Y/R-Y/B-Y","Y(R-Y)(B-Y)","R-Y","B-Y"]};f0.rgb=function(r,a,n){var t=r[0],e=r[1],v=r[2];a=a||.0722,n=n||.2126;var u=t+2*v*(1-n),h=t+2*e*(1-a),i=(t-n*u-a*h)/(1-n-a);return[u*255,i*255,h*255]},f.ypbpr=function(r,a,n){var t=r[0]/255,e=r[1]/255,v=r[2]/255;a=a||.0722,n=n||.2126;var u=n*t+(1-n-a)*e+a*v,h=.5*(v-u)/(1-a),i=.5*(t-u)/(1-n);return[u,h,i]};var _=f0,Z={name:"ycbcr",min:[16,16,16],max:[235,240,240],channel:["Y","Cb","Cr"],alias:["YCbCr","YCC"],ypbpr:function(r){var a=r[0],n=r[1],t=r[2];return[(a-16)/219,(n-128)/224,(t-128)/224]}};_.ycbcr=function(r){var a=r[0],n=r[1],t=r[2];return[16+219*a,128+224*n,128+224*t]},Z.rgb=function(r,a,n){return _.rgb(Z.ypbpr(r),a,n)},f.ycbcr=function(r,a,n){return _.ycbcr(f.ypbpr(r,a,n))};var e1=Z,M0={name:"xvycc",min:[0,0,0],max:[255,255,255],channel:["Y","Cb","Cr"],alias:["xvYCC"],ypbpr:function(r){var a=r[0],n=r[1],t=r[2];return[(a-16)/219,(n-128)/224,(t-128)/224]},rgb:function(r,a,n){return _.rgb(M0.ypbpr(r),a,n)}},v1=M0;_.xvycc=function(r){var a=r[0],n=r[1],t=r[2];return[16+219*a,128+224*n,128+224*t]},f.xvycc=function(r,a,n){return _.xvycc(f.ypbpr(r,a,n))};var m0={name:"yccbccrc",min:[0,-.5,-.5],max:[1,.5,.5],channel:["Yc","Cbc","Crc"],alias:["YcCbcCrc"]};m0.rgb=function(r){return _.rgb(r,.0593,.2627)},f.yccbccrc=function(r){return f.ypbpr(r,.0593,.2627)};var u1=m0,b0={name:"ucs",min:[0,0,0],max:[100,100,100],channel:["U","V","W"],alias:["UCS","cie1960"]},y0=b0;b0.xyz=function(r){var a=r[0],n=r[1],t=r[2];return[1.5*a,n,1.5*a-3*n+2*t]},o.ucs=function(r){var a=r[0],n=r[1],t=r[2];return[a*2/3,n,.5*(-a+3*n+t)]};var K={name:"uvw",min:[-134,-140,0],max:[224,122,100],channel:["U","V","W"],alias:["UVW","cieuvw","cie1964"]},h1=K;K.xyz=function(r,a,n){var t,e,v,u,h,i,c,s,l,M,m,b,y;return u=r[0],h=r[1],v=r[2],v===0?[0,0,0]:(a=a||"D65",n=n||2,l=o.whitepoint[n][a][0],M=o.whitepoint[n][a][1],m=o.whitepoint[n][a][2],b=4*l/(l+15*M+3*m),y=6*M/(l+15*M+3*m),c=Math.pow((v+17)/25,3),t=u/(13*v)+b||0,e=h/(13*v)+y||0,i=6/4*c*t/e,s=c*(2/e-.5*t/e-5),[i,c,s])},o.uvw=function(r,a,n){var t=r[0],e=r[1],v=r[2],u,h,i,c,s;a=a||"D65",n=n||2,u=o.whitepoint[n][a][0],h=o.whitepoint[n][a][1],i=o.whitepoint[n][a][2],c=4*u/(u+15*h+3*i),s=6*h/(u+15*h+3*i);var l=4*t/(t+15*e+3*v)||0,M=6*e/(t+15*e+3*v)||0,m=25*Math.pow(e,1/3)-17,b=13*m*(l-c),y=13*m*(M-s);return[b,y,m]},K.ucs=function(r){throw new Error("Not implemented")},y0.uvw=function(r){throw new Error("Not implemented")};var x0={name:"jpeg",min:[0,0,0],max:[255,255,255],channel:["Y","Cb","Cr"],alias:["JPEG"]},i1=x0;x0.rgb=function(r){var a=r[0],n=r[1],t=r[2];return[a+1.402*(t-128),a-.34414*(n-128)-.71414*(t-128),a+1.772*(n-128)]},f.jpeg=function(r){var a=r[0],n=r[1],t=r[2];return[.299*a+.587*n+.114*t,128-.168736*a-.331264*n+.5*t,128+.5*a-.418688*n-.081312*t]};var p0={name:"lab",min:[0,-100,-100],max:[100,100,100],channel:["lightness","a","b"],alias:["LAB","cielab"]};p0.xyz=([r,a,n])=>{var t,e,v,u;return r<=8?(e=r*100/903.3,u=7.787*(e/100)+16/116):(e=100*Math.pow((r+16)/116,3),u=Math.pow(e/100,1/3)),t=t/95.047<=.008856?t=95.047*(a/500+u-16/116)/7.787:95.047*Math.pow(a/500+u,3),v=v/108.883<=.008859?v=108.883*(u-n/200-16/116)/7.787:108.883*Math.pow(u-n/200,3),[t,e,v]};var U=p0;o.lab=([r,a,n])=>{var t,e,v;return r/=95.047,a/=100,n/=108.883,r=r>.008856?Math.pow(r,1/3):7.787*r+16/116,a=a>.008856?Math.pow(a,1/3):7.787*a+16/116,n=n>.008856?Math.pow(n,1/3):7.787*n+16/116,t=116*a-16,e=500*(r-a),v=200*(a-n),[t,e,v]};var c1={name:"labh",min:[0,-128,-128],max:[100,128,128],channel:["lightness","a","b"],alias:["LABh","hunter-lab","hlab"],xyz:function(r){var a=r[0],n=r[1],t=r[2],e=a/10,v=n/17.5*a/10,u=t/7*a/10,h=e*e,i=(v+h)/1.02,c=-(u-h)/.847;return[i,h,c]}},s1=c1;o.labh=function(r){var a=r[0],n=r[1],t=r[2],e=Math.sqrt(n),v=10*e,u=n===0?0:17.5*((1.02*a-n)/e),h=n===0?0:7*((n-.847*t)/e);return[v,u,h]};var O={name:"lms",min:[0,0,0],max:[100,100,100],channel:["long","medium","short"],matrix:{HPE:[.38971,.68898,-.07868,-.22981,1.1834,.04641,0,0,1],VONKRIES:[.4002,.7076,-.0808,-.2263,1.1653,.0457,0,0,.9182],BFD:[.8951,.2664,-.1614,-.7502,1.7135,.0367,.0389,-.0686,1.0296],CAT97:[.8562,.3372,-.1934,-.836,1.8327,.0033,.0357,-.00469,1.0112],CAT00:[.7982,.3389,-.1371,-.5918,1.5512,.0406,8e-4,.0239,.9753],CAT02:[.7328,.4296,-.1624,-.7036,1.6975,.0061,.003,.0136,.9834]}},l1=O;O.xyz=function(r,a){var n=r[0],t=r[1],e=r[2];return a||(a=[1.096123820835514,-.278869000218287,.182745179382773,.454369041975359,.473533154307412,.072097803717229,-.009627608738429,-.005698031216113,1.015325639954543]),[n*a[0]+t*a[1]+e*a[2],n*a[3]+t*a[4]+e*a[5],n*a[6]+t*a[7]+e*a[8]]},o.lms=function(r,a){var n=r[0],t=r[1],e=r[2];return a||(a=O.matrix.CAT02),[n*a[0]+t*a[1]+e*a[2],n*a[3]+t*a[4]+e*a[5],n*a[6]+t*a[7]+e*a[8]]};var g0={name:"lchab",min:[0,0,0],max:[100,100,360],channel:["lightness","chroma","hue"],alias:["LCHab","cielch","LCH","HLC","LSH"],xyz:function(r){return U.xyz(g0.lab(r))},lab:function(r){var a=r[0],n=r[1],t=r[2],e,v,u;return u=t/360*2*Math.PI,e=n*Math.cos(u),v=n*Math.sin(u),[a,e,v]}};U.lchab=function(r){var a=r[0],n=r[1],t=r[2],e,v,u;return e=Math.atan2(t,n),v=e*360/2/Math.PI,v<0&&(v+=360),u=Math.sqrt(n*n+t*t),[a,u,v]},o.lchab=function(r){return U.lchab(o.lab(r))};var o1=g0,f1={name:"luv",min:[0,-134,-140],max:[100,224,122],channel:["lightness","u","v"],alias:["LUV","cieluv","cie1976"],xyz:function(r,a,n){var t,e,v,u,h,i,c,s,l,M,m,b,y;if(v=r[0],u=r[1],h=r[2],v===0)return[0,0,0];var P=.0011070564598794539;return a=a||"D65",n=n||2,l=o.whitepoint[n][a][0],M=o.whitepoint[n][a][1],m=o.whitepoint[n][a][2],b=4*l/(l+15*M+3*m),y=9*M/(l+15*M+3*m),t=u/(13*v)+b||0,e=h/(13*v)+y||0,c=v>8?M*Math.pow((v+16)/116,3):M*v*P,i=c*9*t/(4*e)||0,s=c*(12-3*t-20*e)/(4*e)||0,[i,c,s]}},V=f1;o.luv=function(r,a,n){var t,e,v,u,h,i,c,s,l,M,m,b,y,P=.008856451679035631,I=903.2962962962961;a=a||"D65",n=n||2,l=o.whitepoint[n][a][0],M=o.whitepoint[n][a][1],m=o.whitepoint[n][a][2],b=4*l/(l+15*M+3*m),y=9*M/(l+15*M+3*m),i=r[0],c=r[1],s=r[2],t=4*i/(i+15*c+3*s)||0,e=9*c/(i+15*c+3*s)||0;var H=c/M;return v=H<=P?I*H:116*Math.pow(H,1/3)-16,u=13*v*(t-b),h=13*v*(e-y),[v,u,h]};var d0={name:"lchuv",channel:["lightness","chroma","hue"],alias:["LCHuv","cielchuv"],min:[0,0,0],max:[100,100,360],luv:function(r){var a=r[0],n=r[1],t=r[2],e,v,u;return u=t/360*2*Math.PI,e=n*Math.cos(u),v=n*Math.sin(u),[a,e,v]},xyz:function(r){return V.xyz(d0.luv(r))}},B=d0;V.lchuv=function(r){var a=r[0],n=r[1],t=r[2],e=Math.sqrt(n*n+t*t),v=Math.atan2(t,n),u=v*360/2/Math.PI;return u<0&&(u+=360),[a,e,u]},o.lchuv=function(r){return V.lchuv(o.luv(r))};function w0(r){var a=[],n=Math.pow(r+16,3)/1560896;n=n>E0?n:r/a0;for(var t=0;3>t;){var e=t++,v=T[e][0],u=T[e][1];e=T[e][2];for(var h=0;2>h;){var i=h++,c=(632260*e-126452*u)*n+126452*i;a.push({b:(284517*v-94839*e)*n/c,a:((838422*e+769860*u+731718*v)*r*n-769860*i*r)/c})}}return a}function _0(r){r=w0(r);for(var a=1/0,n=0;n<r.length;){var t=r[n];++n,a=Math.min(a,Math.abs(t.a)/Math.sqrt(Math.pow(t.b,2)+1))}return a}function q0(r,a){a=a/360*Math.PI*2,r=w0(r);for(var n=1/0,t=0;t<r.length;){var e=r[t];++t,e=e.a/(Math.sin(a)-e.b*Math.cos(a)),0<=e&&(n=Math.min(n,e))}return n}function z(r,a){for(var n=0,t=0,e=r.length;t<e;){var v=t++;n+=r[v]*a[v]}return n}function W(r){return .0031308>=r?12.92*r:1.055*Math.pow(r,.4166666666666667)-.055}function N(r){return .04045<r?Math.pow((r+.055)/1.055,2.4):r/12.92}function P0(r){return[W(z(T[0],r)),W(z(T[1],r)),W(z(T[2],r))]}function Y0(r){return r=[N(r[0]),N(r[1]),N(r[2])],[z($[0],r),z($[1],r),z($[2],r)]}function C0(r){var a=r[0],n=r[1];return r=a+15*n+3*r[2],r!=0?(a=4*a/r,r=9*n/r):r=a=NaN,n=n<=E0?n/S*a0:116*Math.pow(n/S,.3333333333333333)-16,n==0?[0,0,0]:[n,13*n*(a-R0),13*n*(r-A0)]}function z0(r){var a=r[0];if(a==0)return[0,0,0];var n=r[1]/(13*a)+R0;return r=r[2]/(13*a)+A0,a=8>=a?S*a/a0:S*Math.pow((a+16)/116,3),n=0-9*a*n/((n-4)*r-n*r),[n,a,(9*a-15*r*a-r*n)/(3*r)]}function T0(r){var a=r[0],n=r[1],t=r[2];return r=Math.sqrt(n*n+t*t),1e-8>r?n=0:(n=180*Math.atan2(t,n)/Math.PI,0>n&&(n=360+n)),[a,r,n]}function I0(r){var a=r[1],n=r[2]/360*2*Math.PI;return[r[0],Math.cos(n)*a,Math.sin(n)*a]}function H0(r){var a=r[0],n=r[1];return r=r[2],99.9999999<r?[100,0,a]:1e-8>r?[0,0,a]:(n=q0(r,a)/100*n,[r,n,a])}function L0(r){var a=r[0],n=r[1];if(r=r[2],99.9999999<a)return[r,0,100];if(1e-8>a)return[r,0,0];var t=q0(a,r);return[r,n/t*100,a]}function D0(r){var a=r[0],n=r[1];return r=r[2],99.9999999<r?[100,0,a]:1e-8>r?[0,0,a]:(n=_0(r)/100*n,[r,n,a])}function B0(r){var a=r[0],n=r[1];if(r=r[2],99.9999999<a)return[r,0,100];if(1e-8>a)return[r,0,0];var t=_0(a);return[r,n/t*100,a]}function Q(r){return P0(z0(I0(r)))}function J(r){return T0(C0(Y0(r)))}function M1(r){return Q(H0(r))}function m1(r){return L0(J(r))}function b1(r){return Q(D0(r))}function y1(r){return B0(J(r))}var T=[[3.240969941904521,-1.537383177570093,-.498610760293],[-.96924363628087,1.87596750150772,.041555057407175],[.055630079696993,-.20397695888897,1.056971514242878]],$=[[.41239079926595,.35758433938387,.18048078840183],[.21263900587151,.71516867876775,.072192315360733],[.019330818715591,.11919477979462,.95053215224966]],S=1,R0=.19783000664283,A0=.46831999493879,a0=903.2962962,E0=.0088564516,x={hsluvToRgb:M1,hsluvToLch:H0,rgbToHsluv:m1,rgbToHpluv:y1,rgbToXyz:Y0,rgbToLch:J,hpluvToRgb:b1,hpluvToLch:D0,lchToHpluv:B0,lchToHsluv:L0,lchToLuv:I0,lchToRgb:Q,luvToLch:T0,luvToXyz:z0,xyzToLuv:C0,xyzToRgb:P0},x1={name:"hsluv",min:[0,0,0],max:[360,100,100],channel:["hue","saturation","lightness"],alias:["HSLuv","HuSL"],lchuv:x.hsluvToLch,xyz:function(r){return B.xyz(x.hsluvToLch(r))},hpluv:function(r){return x.lchToHpluv(x.hsluvToLch(r))},_hsluv:x},p1=x1;B.hsluv=x.lchToHsluv,o.hsluv=function(r){return x.lchToHsluv(o.lchuv(r))},f.hsluv=x.rgbToHsluv;var g1={name:"hpluv",min:[0,0,0],max:[360,100,100],channel:["hue","saturation","lightness"],alias:["HPLuv","HuSLp"],lchuv:x.hpluvToLch,xyz:function(r){return B.xyz(x.hpluvToLch(r))},hsluv:function(r){return x.lchToHsluv(x.hpluvToLch(r))}},d1=g1;B.hpluv=x.lchToHpluv,o.hpluv=function(r){return x.lchToHpluv(o.lchuv(r))};var k0={name:"oklab",min:[0,-.4,-.4],max:[1,.4,.4],channel:["lightness","a","b"]},w1=k0;k0.rgb=([r,a,n])=>{const t=r+.3963377774*a+.2158037573*n,e=r-.1055613458*a-.0638541728*n,v=r-.0894841775*a-1.291485548*n,u=t**3,h=e**3,i=v**3;return[(4.0767416621*u-3.307711591*h+.2309699292*i)*255,(-1.2684380046*u+2.6097574011*h-.3413193965*i)*255,(-.0041960863*u-.7034186147*h+1.707614701*i)*255]},f.oklab=([r,a,n])=>{r/=255,a/=255,n/=255;const t=.4122214708*r+.5363325363*a+.0514459929*n,e=.2119034982*r+.6806995451*a+.1073969566*n,v=.0883024619*r+.2817188376*a+.6299787005*n,u=Math.cbrt(t),h=Math.cbrt(e),i=Math.cbrt(v);return[.2104542553*u+.793617785*h-.0040720468*i,1.9779984951*u-2.428592205*h+.4505937099*i,.0259040371*u+.7827717662*h-.808675766*i]};var R={start:0,rotation:.5,hue:1,gamma:1},U0={name:"cubehelix",channel:["fraction"],min:[0],max:[1],defaults:R};U0.rgb=function(r,a={}){Array.isArray(r)&&(r=r[0]);var n=a.start!==void 0?a.start:R.start,t=a.rotation!==void 0?a.rotation:R.rotation,e=a.gamma!==void 0?a.gamma:R.gamma,v=a.hue!==void 0?a.hue:R.hue,u=2*Math.PI*(n/3+1+t*r);r=Math.pow(r,e);var h=v*r*(1-r)/2,i=r+h*(-.14861*Math.cos(u)+1.78277*Math.sin(u)),c=r+h*(-.29227*Math.cos(u)-.90649*Math.sin(u)),s=r+h*(1.97294*Math.cos(u));return i=Math.max(1,Math.min(i,0)),c=Math.max(1,Math.min(c,0)),s=Math.max(1,Math.min(s,0)),[i*255,c*255,s*255]},f.cubehelix=function(r){throw new Error("rgb.cubehelix conversion is not implemented yet")};var _1=U0,F={name:"coloroid",alias:["ATV"],channel:["A","T","V"],min:[10,0,0],max:[76,100,100],table:[[10,59,1.724349,.44987,.53641],[11,55.3,1.740844,.46248,.52444],[12,51.7,1.754985,.47451,.51298],[13,48.2,1.767087,.48601,.50325],[14,44.8,1.775953,.49578,.49052],[15,41.5,1.785073,.5079,.43035],[16,38.2,1.791104,.51874,.46934],[20,34.9,1.794831,.5298,.45783],[21,31.5,1.798664,.54137,.44559],[22,28,1.794819,.55367,.43253],[23,24.4,1.78961,.5668,.41811],[24,20.6,1.809483,.58128,.40176],[25,16.6,1.760983,.59766,.383],[26,12.3,1.723443,.61653,.36061],[30,7.7,1.652891,.63896,.33358],[31,2.8,1.502607,.66619,.2993],[32,-2.5,1.0725,.70061,.26753],[33,-8.4,1.136637,.63925,.22631],[34,-19.8,1.232286,.53962,.19721],[35,-31.6,1.31012,.5034,.17495],[40,-43.2,1.37661,.46041,.15603],[41,-54.6,1.438692,.42386,.13846],[42,-65.8,1.501582,.38991,.12083],[43,-76.8,1.570447,.35586,.10328],[44,-86.8,1.645583,.32195,.08496],[45,-95.8,1.732083,.28657,.05155],[46,-108.4,1.915753,.22202,.01771],[50,-117.2,2.14631,.15664,.05227],[51,-124.7,1.649939,.12736,.0902],[52,-131.8,1.273415,.10813,.12506],[53,-138.5,1.080809,.09414,.15741],[54,-145.1,.957076,.03249,.18958],[55,-152,.868976,.07206,.24109],[56,-163.4,.771731,.05787,.30378],[60,-177.2,.697108,.04353,.35696],[61,171.6,.655803,.03291,.41971],[62,152.4,.623958,.0224,.49954],[63,148.4,.596037,.01196,.60321],[64,136.8,.607413,.00425,.73542],[65,125.4,.659923,.01099,.83391],[66,114.2,.859517,.0805,.77474],[70,103.2,1.195683,.20259,.7046],[71,93.2,1.407534,.28807,.6523],[72,84.2,1.532829,.34422,.6193],[73,77.3,1.603792,.37838,.59533],[74,71.6,1.649448,.4029,.57716],[75,66.9,1.68108,.42141,.56222],[76,62.8,1.704979,.43647,.54895]],xyy:function([r,a,n]){for(var t,e=0;e<A.length;e++)if(r<=A[e][0]){t=A[e];break}var v=t[4],u=t[2],h=t[3],i=n*n/100,c=v*u*100,s=(100*i*E*w+100*h*u*a-c*a*E*w)/(100*a*u-c*a*w+100*i*w),l=(100*i+100*a*v*u-c*a)/(i*w*100+a*100*u-a*c*w);return[s,l,i]}},A=F.table,Y=A.slice(-13).concat(A.slice(0,-13)),r0="D65",n0=2,X=o.whitepoint[n0][r0][0],G=o.whitepoint[n0][r0][1],t0=o.whitepoint[n0][r0][2],q1=X/(X+G+t0),E=G/(X+G+t0),w=(X+G+t0)/100;k.coloroid=function(r){for(var a=r[0],n=r[1],t=r[2],e=10*Math.sqrt(t),v=Math.atan2(n-q1,a-E)*180/Math.PI,u,h=Y.length-1,i=0;i<Y.length&&!(v>Y[i][1]);i++)h=i;u=Math.abs(Y[i+1][1]-v)>Math.abs(Y[h][1]-v)?Y[i+1]:Y[h];var c=u[0],s=u[4],l=u[2],M=u[3],m=s*l*100,b=100*t*(E*w-a*w)/(100*(a*l-M*l)+m*(E*w-a*w));return[c,b,e]},o.coloroid=function(r){return k.coloroid(o.xyy(r))},F.xyz=function(r){return k.xyz(F.xyy(r))};var P1=F,Y1={name:"hcg",min:[0,0,0],max:[360,100,100],channel:["hue","chroma","gray"],alias:["HCG","HSG"],rgb:function(r){var a=r[0]/360,n=r[1]/100,t=r[2]/100;if(n===0)return[t*255,t*255,t*255];var e=a%1*6,v=e%1,u=[0,0,0],h=1-v;switch(Math.floor(e)){case 0:u[0]=1,u[1]=v,u[2]=0;break;case 1:u[0]=h,u[1]=1,u[2]=0;break;case 2:u[0]=0,u[1]=1,u[2]=v;break;case 3:u[0]=0,u[1]=h,u[2]=1;break;case 4:u[0]=v,u[1]=0,u[2]=1;break;default:u[0]=1,u[1]=0,u[2]=h}var i=(1-n)*t,c=[(n*u[0]+i)*255,(n*u[1]+i)*255,(n*u[2]+i)*255];return c},hsl:function(r){var a=r[1]/100,n=r[2]/100,t=n*(1-a)+.5*a,e=0;return t<1&&t>0&&(t<.5?e=a/(2*t):e=a/(2*(1-t))),[r[0],e*100,t*100]},hsv:function(r){var a=r[1]/100,n=r[2]/100,t=a+n*(1-a),e;if(t>0){var v=a/t;e=[r[0],v*100,t*100]}else e=[r[0],0,t*100];return e},hwb:function(r){var a=r[1]/100,n=r[2]/100,t=a+n*(1-a);return[r[0],(t-a)*100,(1-t)*100]}},C1=Y1;f.hcg=function(r){var a=r[0]/255,n=r[1]/255,t=r[2]/255,e=Math.max(Math.max(a,n),t),v=Math.min(Math.min(a,n),t),u=e-v,h,i;return u<1?h=v/(1-u):h=0,u>0?(e===a?i=(n-t)/u%6:e===n?i=2+(t-a)/u:i=4+(a-n)/u,i/=6,i=i%1):i=0,[i*360,u*100,h*100]},L.hcg=function(r){var a=r[1]/100,n=r[2]/100,t=0;n<.5?t=2*a*n:t=2*a*(1-n);var e;if(t<1){var v=(n-.5*t)/(1-t);e=[r[0],t*100,v*100]}else e=[r[0],t*100,0];return e},D.hcg=function(r){var a=r[1]/100,n=r[2]/100,t=a*n,e;if(t<1){var v=(n-t)/(1-t);e=[r[0],t*100,v*100]}else e=[r[0],t*100,0];return e},u0.hcg=function(r){var a=r[1]/100,n=r[2]/100,t=1-n,e=t-a,v=0;return e<1&&(v=(t-e)/(1-e)),[r[0],e*100,v*100]};var V0={name:"hcy",min:[0,0,0],max:[360,100,255],channel:["hue","chroma","luminance"],alias:["HCY"]},z1=V0;V0.rgb=function(r){var a=(r[0]<0?r[0]%360+360:r[0]%360)*Math.PI/180,n=Math.max(0,Math.min(r[1],100))/100,t=Math.max(0,Math.min(r[2],255))/255,e=Math.PI/3,v,u,h;return a<2*e?(h=t*(1-n),v=t*(1+n*Math.cos(a)/Math.cos(e-a)),u=t*(1+n*(1-Math.cos(a)/Math.cos(e-a)))):a<4*e?(a=a-2*e,v=t*(1-n),u=t*(1+n*Math.cos(a)/Math.cos(e-a)),h=t*(1+n*(1-Math.cos(a)/Math.cos(e-a)))):(a=a-4*e,u=t*(1-n),h=t*(1+n*Math.cos(a)/Math.cos(e-a)),v=t*(1+n*(1-Math.cos(a)/Math.cos(e-a)))),[v*255,u*255,h*255]},f.hcy=function(r){var a=r[0]+r[1]+r[2],n=r[0]/a,t=r[1]/a,e=r[2]/a,v=Math.acos(.5*(n-t+(n-e))/Math.sqrt((n-t)*(n-t)+(n-e)*(t-e)));e>t&&(v=2*Math.PI-v);var u=1-3*Math.min(n,t,e),h=a/3;return[v*180/Math.PI,u*100,h]};var S0={name:"tsl",min:[0,0,0],max:[1,1,1],channel:["tint","saturation","lightness"],alias:["TSL"]},T1=S0;S0.rgb=function(r){var a=r[0],n=r[1],t=r[2],e=Math.tan(2*Math.PI*(a-1/4));e*=e;var v=Math.sqrt(5*n*n/(9*(1/e+1)))+1/3,u=Math.sqrt(5*n*n/(9*(e+1)))+1/3,h=t/(.185*v+.473*u+.114),i=h*(1-v-u),c=h*u,s=h*v;return[s*255,c*255,i*255]},f.tsl=function(r){var[a,n,t]=r,e=(a/(a+n+t)||0)-1/3,v=(n/(a+n+t)||0)-1/3,u=v!=0?.5-Math.atan2(v,e)/2/Math.PI:0,h=Math.sqrt(9/5*(e*e+v*v)),i=(a*.299+n*.587+t*.114)/255;return[u,h,i]};var F0={name:"yes",min:[0,0,0],max:[1,1,1],channel:["luminance","e-factor","s-factor"]};F0.rgb=function(r){var a=r[0],n=r[1],t=r[2],e=[1,1.431,.126,1,-.569,.126,1,.431,-1.874],v=a*e[0]+n*e[1]+t*e[2],u=a*e[3]+n*e[4]+t*e[5],h=a*e[6]+n*e[7]+t*e[8];return[v*255,u*255,h*255]},f.yes=function(r){var a=r[0]/255,n=r[1]/255,t=r[2]/255,e=[.253,.684,.063,.5,-.5,0,.25,.25,-.5];return[a*e[0]+n*e[1]+t*e[2],a*e[3]+n*e[4]+t*e[5],a*e[6]+n*e[7]+t*e[8]]};var I1=F0,X0={name:"osaucs",alias:["OSA-UCS"],channel:["L","j","g"],min:[-10,-6,-10],max:[8,12,6]};X0.xyz=function(r){var a,n,t;throw"Unimplemented"},o.osaucs=function(r){var a=r[0],n=r[1],t=r[2],e=a/(a+n+t),v=n/(a+n+t),u=4.4934*e*e+4.3034*v*v-4.276*e*v-1.3744*e-2.56439*v+1.8103,h=u*n,i=5.9*(Math.pow(h,1/3)-2/3+.042*Math.pow(Math.max(h,30)-30,1/3)),c=(i-14.3993)/Math.sqrt(2),s=i/(5.9*(Math.pow(h,1/3)-2/3)),l=.779*a+.4194*n-.1648*t,M=-.4493*a+1.3265*n+.0927*t,m=-.1149*a+.3394*n+.717*t;l=Math.pow(l,1/3)||0,M=Math.pow(M,1/3)||0,m=Math.pow(m,1/3)||0;var b=-13.7*l+17.7*M-4*m,y=1.7*l+8*M-9.7*m,P=s*b,I=s*y;return[c,I,P]};var H1=X0,p=.299,g=.587,d=.114,L1={name:"hsp",min:[0,0,0],max:[360,100,255],channel:["hue","saturation","perceived_brightness"],alias:["HSP"],rgb:function(r){var a=r[0]/360,n=r[1]/100,t=r[2],e,v,u,h,i=1-n;return i>0?a<1/6?(a=6*(a-0/6),h=1+a*(1/i-1),u=t/Math.sqrt(p/i/i+g*h*h+d),e=u/i,v=u+a*(e-u)):a<2/6?(a=6*(-a+2/6),h=1+a*(1/i-1),u=t/Math.sqrt(g/i/i+p*h*h+d),v=u/i,e=u+a*(v-u)):a<3/6?(a=6*(a-2/6),h=1+a*(1/i-1),e=t/Math.sqrt(g/i/i+d*h*h+p),v=e/i,u=e+a*(v-e)):a<4/6?(a=6*(-a+4/6),h=1+a*(1/i-1),e=t/Math.sqrt(d/i/i+g*h*h+p),u=e/i,v=e+a*(u-e)):a<5/6?(a=6*(a-4/6),h=1+a*(1/i-1),v=t/Math.sqrt(d/i/i+p*h*h+g),u=v/i,e=v+a*(u-v)):(a=6*(-a+6/6),h=1+a*(1/i-1),v=t/Math.sqrt(p/i/i+d*h*h+g),e=v/i,u=v+a*(e-v)):a<1/6?(a=6*(a-0/6),e=Math.sqrt(t*t/(p+g*a*a)),v=e*a,u=0):a<2/6?(a=6*(-a+2/6),v=Math.sqrt(t*t/(g+p*a*a)),e=v*a,u=0):a<3/6?(a=6*(a-2/6),v=Math.sqrt(t*t/(g+d*a*a)),u=v*a,e=0):a<4/6?(a=6*(-a+4/6),u=Math.sqrt(t*t/(d+g*a*a)),v=u*a,e=0):a<5/6?(a=6*(a-4/6),u=Math.sqrt(t*t/(d+p*a*a)),e=u*a,v=0):(a=6*(-a+6/6),e=Math.sqrt(t*t/(p+d*a*a)),u=e*a,v=0),[Math.round(e),Math.round(v),Math.round(u)]}},D1=L1;f.hsp=function(r){var a=parseInt(r[0],10),n=parseInt(r[1],10),t=parseInt(r[2],10),e,v,u;return u=Math.sqrt(a*a*p+n*n*g+t*t*d),a===n&&a===t?(e=0,v=0):(a>=n&&a>=t&&(t>=n?(e=6/6-1/6*(t-n)/(a-n),v=1-n/a):(e=0/6+1/6*(n-t)/(a-t),v=1-t/a)),n>=a&&n>=t&&(a>=t?(e=2/6-1/6*(a-t)/(n-t),v=1-t/n):(e=2/6+1/6*(t-a)/(n-a),v=1-a/n)),t>=a&&t>=n&&(n>=a?(e=4/6-1/6*(n-a)/(t-a),v=1-a/t):(e=4/6+1/6*(a-n)/(t-n),v=1-n/t))),[Math.round(e*360),v*100,Math.round(u)]};var G0={name:"hsm",min:[0,0,0],max:[1,1,1],channel:["hue","saturation","mixture"]},B1=G0;G0.rgb=function([r,a,n]){let t;n>=0&&n<=1/7?t=Math.sqrt((0-n)**2+(0-n)**2+(7-n)**2):n>1/7&&n<=3/7?t=Math.sqrt((0-n)**2+((7*n-1)/2-n)**2+(1-n)**2):n>3/7&&n<=.5?t=Math.sqrt(((7*n-3)/2-n)**2+(1-n)**2+(1-n)**2):n>.5&&n<=4/7?t=Math.sqrt((7*n/4-n)**2+(0-n)**2+(0-n)**2):n>4/7&&n<=6/7?t=Math.sqrt((1-n)**2+((7*n-4)/2-n)**2+(0-n)**2):n>6/7&&n<=1?t=Math.sqrt((1-n)**2+(1-n)**2+(7*n-6-n)**2):t=1;const e=a*t,v=Math.cos(2*Math.PI*r),u=Math.sin(2*Math.PI*r),h=3/Math.sqrt(41),i=-4/Math.sqrt(861),c=-4/Math.sqrt(41),s=19/Math.sqrt(861),l=-4/Math.sqrt(41),M=-22/Math.sqrt(861),m=e*(h*v+i*u),b=e*(c*v+s*u),y=e*(l*v+M*u),P=Math.max(0,Math.min(1,n+m))*255,I=Math.max(0,Math.min(1,n+b))*255,H=Math.max(0,Math.min(1,n+y))*255;return[P,I,H]},f.hsm=function([r,a,n]){r/=255,a/=255,n/=255;let t=(4*r+2*a+n)/7,e=r-t,v=a-t,u=n-t,h=Math.sqrt(e*e+v*v+u*u),i=Math.acos((3*e-4*v-4*u)/Math.sqrt(41*(e*e+v*v+u*u))||0),c=n<=a?i/(2*Math.PI):1-i/(2*Math.PI),s;return 0<=t&&t<=1/7?s=h/Math.sqrt((0-t)**2+(0-t)**2+(7-t)**2):1/7<t&&t<=3/7?s=h/Math.sqrt((0-t)**2+((7*t-1)/2-t)**2+(1-t)**2):3/7<t&&t<=1/2?s=h/Math.sqrt(((7*t-3)/2-t)**2+(1-t)**2+(1-t)**2):1/2<t&&t<=4/7?s=h/Math.sqrt((7*t/4-t)**2+(0-t)**2+(0-t)**2):4/7<t&&t<=6/7?s=h/Math.sqrt((1-t)**2+((7*t-4)/2-t)**2+(0-t)**2):6/7<t&&t<1?s=h/Math.sqrt((1-t)**2+(1-t)**2+(7*t-6-t)**2):s=0,[c,s,t]};var j0={name:"lrgb",min:[0,0,0],max:[1,1,1],channel:["red","green","blue"]};j0.rgb=r=>r.map(a=>(a/=255)>.04045?((a+.055)/1.055)**2.4:a/12.92),f.lrgb=r=>r.map(a=>a/255<=.04045?a/255/12.92:((a/255+.055)/1.055)**2.4);var R1=j0,q={},A1=q;function Z0(r){const a=r.name;for(const n in q){r[n]||(r[n]=K0(r,n));const t=q[n];t[a]||(t[a]=K0(t,a))}q[a]=r}function K0(r,a){return r.xyz&&q.xyz[a]?n=>q.xyz[a](r.xyz(n)):r.rgb&&q.rgb[a]?n=>q.rgb[a](r.rgb(n)):()=>{throw new Error(`Conversion ${r.name} to ${a} is not available`)}}[f,o,L,D,Q0,u0,$0,a1,k,r1,l0,n1,t1,_,e1,v1,u1,y0,h1,i1,U,s1,l1,o1,V,B,p1,d1,_1,P1,C1,z1,T1,I1,H1,D1,B1,R1,w1].map(Z0);export{A1 as default,Z0 as register};