summaryrefslogtreecommitdiff
path: root/js/color.js
diff options
context:
space:
mode:
authorJules Laplace <jules@okfoc.us>2014-11-22 23:19:36 -0500
committerJules Laplace <jules@okfoc.us>2014-11-22 23:19:36 -0500
commit070b5e6d9d3c7e23c06f0ae0b75026923529c24d (patch)
tree89c430dd17ca54ff60f885ecd99cf6cfa0f0b7ff /js/color.js
parent04537ed34d443d0610b77420d1dbef64bc05fbfa (diff)
parent1631cdf643283fc71bc9d70b5dcbce03ab9c2386 (diff)
Merge branch 'master' of lmno:dither
Diffstat (limited to 'js/color.js')
-rw-r--r--js/color.js20
1 files changed, 10 insertions, 10 deletions
diff --git a/js/color.js b/js/color.js
index ba60db7..215c3e6 100644
--- a/js/color.js
+++ b/js/color.js
@@ -16,11 +16,11 @@ function rgb2xyz(rgb){
var var_G = ( rgb[1] / 255 ) //G from 0 to 255
var var_B = ( rgb[2] / 255 ) //B from 0 to 255
- if ( var_R > 0.04045 ) var_R = ( ( var_R + 0.055 ) / 1.055 ) ^ 2.4
+ if ( var_R > 0.04045 ) var_R = Math.pow( ( var_R + 0.055 ) / 1.055, 2.4)
else var_R = var_R / 12.92
- if ( var_G > 0.04045 ) var_G = ( ( var_G + 0.055 ) / 1.055 ) ^ 2.4
+ if ( var_G > 0.04045 ) var_G = Math.pow( ( var_G + 0.055 ) / 1.055, 2.4)
else var_G = var_G / 12.92
- if ( var_B > 0.04045 ) var_B = ( ( var_B + 0.055 ) / 1.055 ) ^ 2.4
+ if ( var_B > 0.04045 ) var_B = Math.pow( ( var_B + 0.055 ) / 1.055, 2.4)
else var_B = var_B / 12.92
var_R = var_R * 100
@@ -57,7 +57,7 @@ function xyz2rgb(xyz){
function xyz2hunterlab (XYZ) {
var X = XYZ[0]
- var Y = XYZ[1]
+ var Y = XYZ[1] || 1e-6 // otherwise divide-by-zero error when converting rgb(0,0,0)
var Z = XYZ[2]
var L = 10 * sqrt( Y )
var a = 17.5 * ( ( ( 1.02 * X ) - Y ) / sqrt( Y ) )
@@ -107,16 +107,16 @@ function cielab2xyz (lab){
var var_X = lab[1] / 500 + var_Y
var var_Z = var_Y - lab[2] / 200
- if ( var_Y^3 > 0.008856 ) var_Y = Math.pow(var_Y, 3)
+ if ( Math.pow(var_Y, 3) > 0.008856 ) var_Y = Math.pow(var_Y, 3)
else var_Y = ( var_Y - 16 / 116 ) / 7.787
- if ( var_X^3 > 0.008856 ) var_X = Math.pow(var_X, 3)
+ if ( Math.pow(var_X, 3) > 0.008856 ) var_X = Math.pow(var_X, 3)
else var_X = ( var_X - 16 / 116 ) / 7.787
- if ( var_Z^3 > 0.008856 ) var_Z = Math.pow(var_Z, 3)
+ if ( Math.pow(var_Z, 3) > 0.008856 ) var_Z = Math.pow(var_Z, 3)
else var_Z = ( var_Z - 16 / 116 ) / 7.787
- var X = REF_X * var_X //ref_X = 95.047 Observer= 2°, Illuminant= D65
- var Y = REF_Y * var_Y //ref_Y = 100.000
- var Z = REF_Z * var_Z //ref_Z = 108.883
+ var x = REF_X * var_X //ref_X = 95.047 Observer= 2°, Illuminant= D65
+ var y = REF_Y * var_Y //ref_Y = 100.000
+ var z = REF_Z * var_Z //ref_Z = 108.883
return [x,y,z]
}