summaryrefslogtreecommitdiff
path: root/docs/js/cielab.js
diff options
context:
space:
mode:
authorJules Laplace <julescarbon@gmail.com>2019-01-07 23:01:11 +0100
committerJules Laplace <julescarbon@gmail.com>2019-01-07 23:01:11 +0100
commit4777c058469847cbe02eb2a24634b21ee37384fc (patch)
tree3fd87861241a75f59819bc0771eb3e97bd88e2f6 /docs/js/cielab.js
parentd317978119fc0936d9c342edf47e55be230cd215 (diff)
move docs
Diffstat (limited to 'docs/js/cielab.js')
-rw-r--r--docs/js/cielab.js70
1 files changed, 0 insertions, 70 deletions
diff --git a/docs/js/cielab.js b/docs/js/cielab.js
deleted file mode 100644
index 14c096f..0000000
--- a/docs/js/cielab.js
+++ /dev/null
@@ -1,70 +0,0 @@
-var cielab = (function(){
- var cielab = {}
-
- var xyz = [0,0,0]
- var rgb = [0,0,0]
-
- L_range = [0, 100]
- a_range = [-86.185, 98.254]
- b_range = [-107.863, 94.482]
-
- cielab.gradient = function (n) {
- n = n || 100
- var k = 0
-
- var L, a, b
-
- var L0 = randrange(L_range[0] + 50, L_range[1])
- var L1 = randrange(L_range[0]+ 50, L_range[1])
- var a0 = randrange(a_range[0], a_range[1])
- var a1 = randrange(a_range[0], a_range[1])
- var b0 = randrange(b_range[0], b_range[1])
- var b1 = randrange(b_range[0], b_range[1])
- return function next (aa){
- L = mix(k/n, L0, L1)
- a = mix(k/n, a0, a1)
- b = mix(k/n, b0, b1)
- rgb = xyz2rgb(hunterlab2xyz(L, a, b))
- k += 1
- return rgba_string(rgb, aa)
- }
- }
- function rgba_string (rgb, a) { return "rgba(" + rgb.map(Math.round).join(",") + "," + a + ")" }
- function hex_string (rgb) { return "#" + rgb.map(Math.round).map(function(n){ var s = n.toString(16); return s.length == 1 ? "0"+s : s }).join("") }
-
- function mix(n,a,b){ return n*a + (1-n)*b }
- function clamp(n,a,b){ return n<a?a:n<b?n:b }
- function hunterlab2xyz (L,a,b) {
- 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
- xyz = [X,Y,Z]
- }
- function xyz2rgb(){
- var var_X = xyz[0] / 100 //X from 0 to 95.047 (Observer = 2°, Illuminant = D65)
- var var_Y = xyz[1] / 100 //Y from 0 to 100.000
- var var_Z = xyz[2] / 100 //Z from 0 to 108.883
-
- var_R = var_X * 3.2406 + var_Y * -1.5372 + var_Z * -0.4986
- var_G = var_X * -0.9689 + var_Y * 1.8758 + var_Z * 0.0415
- var_B = var_X * 0.0557 + var_Y * -0.2040 + var_Z * 1.0570
-
- if ( var_R > 0.0031308 ) var_R = 1.055 * Math.pow( var_R, 1 / 2.4 ) - 0.055
- else var_R = 12.92 * var_R
- if ( var_G > 0.0031308 ) var_G = 1.055 * Math.pow( var_G, 1 / 2.4 ) - 0.055
- else var_G = 12.92 * var_G
- if ( var_B > 0.0031308 ) var_B = 1.055 * Math.pow( var_B, 1 / 2.4 ) - 0.055
- else var_B = 12.92 * var_B
-
- rgb[0] = clamp(var_R * 255, 0, 255)
- rgb[1] = clamp(var_G * 255, 0, 255)
- rgb[2] = clamp(var_B * 255, 0, 255)
- return rgb
- }
-
- return cielab
-})() \ No newline at end of file