diff options
| author | jules <jules@okfoc.us> | 2013-12-14 01:21:39 -0500 |
|---|---|---|
| committer | jules <jules@okfoc.us> | 2013-12-14 01:21:39 -0500 |
| commit | 9e50082e14a089adac956b1442d3d662a9dbade5 (patch) | |
| tree | ffe2005e8ff543303eef2eb84570a33b530b3b02 | |
| parent | dbfb3745134454d0d7cfb2a400ae23b81f1ea0bf (diff) | |
hunter lab
| -rw-r--r-- | js/color.js | 31 |
1 files changed, 29 insertions, 2 deletions
diff --git a/js/color.js b/js/color.js index 9c2ab09..a8479b9 100644 --- a/js/color.js +++ b/js/color.js @@ -49,12 +49,39 @@ function xyz2rgb(xyz){ return [r,g,b] } +function xyz2hunterlab (X,Y,Z) { + if (X.length) { + Z = X[2] + Y = X[1] + X = X[0] + } + var L = 10 * sqrt( Y ) + var a = 17.5 * ( ( ( 1.02 * X ) - Y ) / sqrt( Y ) ) + var b = 7 * ( ( Y - ( 0.847 * Z ) ) / sqrt( Y ) ) + return [L,a,b] +} + +function hunterlab2xyz (L,a,b) { + if (L.length) { + b = L[2] + a = L[1] + L = L[0] + } + var_Y = L / 10 + var_X = a / 17.5 * L / 10 + var_Z = b / 7 * L / 10 + + Y = Math.pow(var_Y, 2) + X = ( var_X + Y ) / 1.02 + Z = -( var_Z - Y ) / 0.847 + return [X,Y,Z] +} // Daylight Illuminant (D65) var REF_X = 95.047 var REF_Y = 100.000 var REF_Z = 108.883 -function xyz2lab (xyz) { +function xyz2cielab (xyz) { var var_X = xyz[0] / ref_X //ref_X = 95.047 Observer= 2°, Illuminant= D65 var var_Y = xyz[1] / ref_Y //ref_Y = 100.000 var var_Z = xyz[2] / ref_Z //ref_Z = 108.883 @@ -73,7 +100,7 @@ function xyz2lab (xyz) { return [L,a,b] } -function lab2xyz (lab){ +function cielab2xyz (lab){ var var_Y = ( lab[0] + 16 ) / 116 var var_X = lab[1] / 500 + var_Y var var_Z = var_Y - lab[2] / 200 |
