annotate hexagram-6ae12361157c/hexagram/color-0.4.1.js @ 0:1407e3634bcf draft default tip

Uploaded r11 from test tool shed.
author adam-novak
date Tue, 22 Oct 2013 14:17:59 -0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1 (function(){var global = this;function debug(){return debug};function require(p, parent){ var path = require.resolve(p) , mod = require.modules[path]; if (!mod) throw new Error('failed to require "' + p + '" from ' + parent); if (!mod.exports) { mod.exports = {}; mod.call(mod.exports, mod, mod.exports, require.relative(path), global); } return mod.exports;}require.modules = {};require.resolve = function(path){ var orig = path , reg = path + '.js' , index = path + '/index.js'; return require.modules[reg] && reg || require.modules[index] && index || orig;};require.register = function(path, fn){ require.modules[path] = fn;};require.relative = function(parent) { return function(p){ if ('debug' == p) return debug; if ('.' != p.charAt(0)) return require(p); var path = parent.split('/') , segs = p.split('/'); path.pop(); for (var i = 0; i < segs.length; i++) { var seg = segs[i]; if ('..' == seg) path.pop(); else if ('.' != seg) path.push(seg); } return require(path.join('/'), parent); };};require.register("color.js", function(module, exports, require, global){
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
2 /* MIT license */
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
3 var convert = require("color-convert"),
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
4 string = require("color-string");
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
5
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
6 module.exports = function(cssString) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
7 return new Color(cssString);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
8 };
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
9
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
10 var Color = function(cssString) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
11 this.values = {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
12 rgb: [0, 0, 0],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
13 hsl: [0, 0, 0],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
14 hsv: [0, 0, 0],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
15 cmyk: [0, 0, 0, 0],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
16 alpha: 1
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
17 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
18
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
19 // parse Color() argument
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
20 if (typeof cssString == "string") {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
21 var vals = string.getRgba(cssString);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
22 if (vals) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
23 this.setValues("rgb", vals);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
24 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
25 else if(vals = string.getHsla(cssString)) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
26 this.setValues("hsl", vals);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
27 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
28 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
29 else if (typeof cssString == "object") {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
30 var vals = cssString;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
31 if(vals["r"] !== undefined || vals["red"] !== undefined) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
32 this.setValues("rgb", vals)
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
33 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
34 else if(vals["l"] !== undefined || vals["lightness"] !== undefined) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
35 this.setValues("hsl", vals)
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
36 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
37 else if(vals["v"] !== undefined || vals["value"] !== undefined) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
38 this.setValues("hsv", vals)
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
39 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
40 else if(vals["c"] !== undefined || vals["cyan"] !== undefined) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
41 this.setValues("cmyk", vals)
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
42 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
43 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
44 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
45
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
46 Color.prototype = {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
47 rgb: function (vals) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
48 return this.setSpace("rgb", arguments);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
49 },
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
50 hsl: function(vals) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
51 return this.setSpace("hsl", arguments);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
52 },
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
53 hsv: function(vals) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
54 return this.setSpace("hsv", arguments);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
55 },
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
56 cmyk: function(vals) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
57 return this.setSpace("cmyk", arguments);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
58 },
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
59
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
60 rgbArray: function() {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
61 return this.values.rgb;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
62 },
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
63 hslArray: function() {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
64 return this.values.hsl;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
65 },
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
66 hsvArray: function() {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
67 return this.values.hsv;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
68 },
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
69 cmykArray: function() {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
70 return this.values.cmyk;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
71 },
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
72 rgbaArray: function() {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
73 var rgb = this.values.rgb;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
74 rgb.push(this.values.alpha);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
75 return rgb;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
76 },
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
77 hslaArray: function() {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
78 var hsl = this.values.hsl;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
79 hsl.push(this.values.alpha);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
80 return hsl;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
81 },
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
82
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
83 alpha: function(val) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
84 if (val === undefined) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
85 return this.values.alpha;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
86 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
87 this.setValues("alpha", val);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
88 return this;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
89 },
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
90
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
91 red: function(val) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
92 return this.setChannel("rgb", 0, val);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
93 },
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
94 green: function(val) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
95 return this.setChannel("rgb", 1, val);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
96 },
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
97 blue: function(val) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
98 return this.setChannel("rgb", 2, val);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
99 },
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
100 hue: function(val) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
101 return this.setChannel("hsl", 0, val);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
102 },
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
103 saturation: function(val) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
104 return this.setChannel("hsl", 1, val);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
105 },
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
106 lightness: function(val) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
107 return this.setChannel("hsl", 2, val);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
108 },
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
109 saturationv: function(val) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
110 return this.setChannel("hsv", 1, val);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
111 },
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
112 value: function(val) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
113 return this.setChannel("hsv", 2, val);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
114 },
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
115 cyan: function(val) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
116 return this.setChannel("cmyk", 0, val);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
117 },
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
118 magenta: function(val) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
119 return this.setChannel("cmyk", 1, val);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
120 },
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
121 yellow: function(val) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
122 return this.setChannel("cmyk", 2, val);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
123 },
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
124 black: function(val) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
125 return this.setChannel("cmyk", 3, val);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
126 },
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
127
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
128 hexString: function() {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
129 return string.hexString(this.values.rgb);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
130 },
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
131 rgbString: function() {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
132 return string.rgbString(this.values.rgb, this.values.alpha);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
133 },
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
134 rgbaString: function() {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
135 return string.rgbaString(this.values.rgb, this.values.alpha);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
136 },
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
137 percentString: function() {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
138 return string.percentString(this.values.rgb, this.values.alpha);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
139 },
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
140 hslString: function() {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
141 return string.hslString(this.values.hsl, this.values.alpha);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
142 },
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
143 hslaString: function() {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
144 return string.hslaString(this.values.hsl, this.values.alpha);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
145 },
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
146 keyword: function() {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
147 return string.keyword(this.values.rgb, this.values.alpha);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
148 },
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
149
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
150 luminosity: function() {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
151 // http://www.w3.org/TR/WCAG20/#relativeluminancedef
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
152 var rgb = this.values.rgb;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
153 for (var i = 0; i < rgb.length; i++) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
154 var chan = rgb[i] / 255;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
155 rgb[i] = (chan <= 0.03928) ? chan / 12.92
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
156 : Math.pow(((chan + 0.055) / 1.055), 2.4)
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
157 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
158 return 0.2126 * rgb[0] + 0.7152 * rgb[1] + 0.0722 * rgb[2];
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
159 },
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
160
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
161 contrast: function(color2) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
162 // http://www.w3.org/TR/WCAG20/#contrast-ratiodef
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
163 var lum1 = this.luminosity();
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
164 var lum2 = color2.luminosity();
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
165 if (lum1 > lum2) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
166 return (lum1 + 0.05) / (lum2 + 0.05)
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
167 };
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
168 return (lum2 + 0.05) / (lum1 + 0.05);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
169 },
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
170
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
171 dark: function() {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
172 // YIQ equation from http://24ways.org/2010/calculating-color-contrast
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
173 var rgb = this.values.rgb,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
174 yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
175 return yiq < 128;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
176 },
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
177
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
178 light: function() {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
179 return !this.dark();
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
180 },
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
181
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
182 negate: function() {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
183 var rgb = []
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
184 for (var i = 0; i < 3; i++) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
185 rgb[i] = 255 - this.values.rgb[i];
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
186 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
187 this.setValues("rgb", rgb);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
188 return this;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
189 },
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
190
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
191 lighten: function(ratio) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
192 this.values.hsl[2] += this.values.hsl[2] * ratio;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
193 this.setValues("hsl", this.values.hsl);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
194 return this;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
195 },
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
196
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
197 darken: function(ratio) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
198 this.values.hsl[2] -= this.values.hsl[2] * ratio;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
199 this.setValues("hsl", this.values.hsl);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
200 return this;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
201 },
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
202
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
203 saturate: function(ratio) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
204 this.values.hsl[1] += this.values.hsl[1] * ratio;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
205 this.setValues("hsl", this.values.hsl);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
206 return this;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
207 },
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
208
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
209 desaturate: function(ratio) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
210 this.values.hsl[1] -= this.values.hsl[1] * ratio;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
211 this.setValues("hsl", this.values.hsl);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
212 return this;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
213 },
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
214
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
215 greyscale: function() {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
216 var rgb = this.values.rgb;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
217 // http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
218 var val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
219 this.setValues("rgb", [val, val, val]);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
220 return this;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
221 },
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
222
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
223 clearer: function(ratio) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
224 this.setValues("alpha", this.values.alpha - (this.values.alpha * ratio));
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
225 return this;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
226 },
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
227
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
228 opaquer: function(ratio) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
229 this.setValues("alpha", this.values.alpha + (this.values.alpha * ratio));
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
230 return this;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
231 },
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
232
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
233 rotate: function(degrees) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
234 var hue = this.values.hsl[0];
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
235 hue = (hue + degrees) % 360;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
236 hue = hue < 0 ? 360 + hue : hue;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
237 this.values.hsl[0] = hue;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
238 this.setValues("hsl", this.values.hsl);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
239 return this;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
240 },
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
241
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
242 mix: function(color2, weight) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
243 weight = 1 - (weight || 0.5);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
244
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
245 // algorithm from Sass's mix(). Ratio of first color in mix is
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
246 // determined by the alphas of both colors and the weight
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
247 var t1 = weight * 2 - 1,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
248 d = this.alpha() - color2.alpha();
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
249
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
250 var weight1 = (((t1 * d == -1) ? t1 : (t1 + d) / (1 + t1 * d)) + 1) / 2;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
251 var weight2 = 1 - weight1;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
252
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
253 var rgb = this.rgbArray();
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
254 var rgb2 = color2.rgbArray();
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
255
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
256 for (var i = 0; i < rgb.length; i++) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
257 rgb[i] = rgb[i] * weight1 + rgb2[i] * weight2;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
258 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
259 this.setValues("rgb", rgb);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
260
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
261 var alpha = this.alpha() * weight + color2.alpha() * (1 - weight);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
262 this.setValues("alpha", alpha);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
263
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
264 return this;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
265 },
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
266
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
267 toJSON: function() {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
268 return this.rgb();
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
269 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
270 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
271
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
272
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
273 Color.prototype.getValues = function(space) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
274 var vals = {};
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
275 for (var i = 0; i < space.length; i++) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
276 vals[space[i]] = this.values[space][i];
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
277 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
278 if (this.values.alpha != 1) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
279 vals["a"] = this.values.alpha;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
280 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
281 // {r: 255, g: 255, b: 255, a: 0.4}
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
282 return vals;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
283 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
284
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
285 Color.prototype.setValues = function(space, vals) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
286 var spaces = {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
287 "rgb": ["red", "green", "blue"],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
288 "hsl": ["hue", "saturation", "lightness"],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
289 "hsv": ["hue", "saturation", "value"],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
290 "cmyk": ["cyan", "magenta", "yellow", "black"]
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
291 };
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
292
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
293 var maxes = {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
294 "rgb": [255, 255, 255],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
295 "hsl": [360, 100, 100],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
296 "hsv": [360, 100, 100],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
297 "cmyk": [100, 100, 100, 100],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
298 };
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
299
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
300 var alpha = 1;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
301 if (space == "alpha") {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
302 alpha = vals;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
303 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
304 else if (vals.length) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
305 // [10, 10, 10]
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
306 this.values[space] = vals.slice(0, space.length);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
307 alpha = vals[space.length];
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
308 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
309 else if (vals[space[0]] !== undefined) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
310 // {r: 10, g: 10, b: 10}
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
311 for (var i = 0; i < space.length; i++) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
312 this.values[space][i] = vals[space[i]];
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
313 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
314 alpha = vals.a;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
315 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
316 else if (vals[spaces[space][0]] !== undefined) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
317 // {red: 10, green: 10, blue: 10}
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
318 var chans = spaces[space];
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
319 for (var i = 0; i < space.length; i++) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
320 this.values[space][i] = vals[chans[i]];
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
321 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
322 alpha = vals.alpha;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
323 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
324 this.values.alpha = Math.max(0, Math.min(1, alpha || this.values.alpha));
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
325 if (space == "alpha") {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
326 return;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
327 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
328
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
329 // convert to all the other color spaces
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
330 for (var sname in spaces) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
331 if (sname != space) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
332 this.values[sname] = convert[space][sname](this.values[space])
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
333 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
334
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
335 // cap values
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
336 for (var i = 0; i < sname.length; i++) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
337 var capped = Math.max(0, Math.min(maxes[sname][i], this.values[sname][i]));
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
338 this.values[sname][i] = Math.round(capped);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
339 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
340 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
341 return true;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
342 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
343
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
344 Color.prototype.setSpace = function(space, args) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
345 var vals = args[0];
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
346 if (vals === undefined) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
347 // color.rgb()
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
348 return this.getValues(space);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
349 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
350 // color.rgb(10, 10, 10)
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
351 if (typeof vals == "number") {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
352 vals = Array.prototype.slice.call(args);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
353 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
354 this.setValues(space, vals);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
355 return this;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
356 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
357
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
358 Color.prototype.setChannel = function(space, index, val) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
359 if (val === undefined) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
360 // color.red()
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
361 return this.values[space][index];
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
362 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
363 // color.red(100)
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
364 this.values[space][index] = val;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
365 this.setValues(space, this.values[space]);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
366 return this;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
367 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
368
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
369 });require.register("color-string", function(module, exports, require, global){
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
370 /* MIT license */
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
371 var convert = require("color-convert");
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
372
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
373 module.exports = {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
374 getRgba: getRgba,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
375 getHsla: getHsla,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
376 getRgb: getRgb,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
377 getHsl: getHsl,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
378 getAlpha: getAlpha,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
379
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
380 hexString: hexString,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
381 rgbString: rgbString,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
382 rgbaString: rgbaString,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
383 percentString: percentString,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
384 percentaString: percentaString,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
385 hslString: hslString,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
386 hslaString: hslaString,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
387 keyword: keyword
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
388 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
389
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
390 function getRgba(string) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
391 if (!string) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
392 return;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
393 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
394 var abbr = /^#([a-fA-F0-9]{3})$/,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
395 hex = /^#([a-fA-F0-9]{6})$/,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
396 rgba = /^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*([\d\.]+)\s*)?\)$/,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
397 per = /^rgba?\(\s*([\d\.]+)\%\s*,\s*([\d\.]+)\%\s*,\s*([\d\.]+)\%\s*(?:,\s*([\d\.]+)\s*)?\)$/,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
398 keyword = /(\D+)/;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
399
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
400 var rgb = [0, 0, 0],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
401 a = 1,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
402 match = string.match(abbr);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
403 if (match) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
404 match = match[1];
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
405 for (var i = 0; i < rgb.length; i++) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
406 rgb[i] = parseInt(match[i] + match[i], 16);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
407 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
408 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
409 else if (match = string.match(hex)) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
410 match = match[1];
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
411 for (var i = 0; i < rgb.length; i++) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
412 rgb[i] = parseInt(match.slice(i * 2, i * 2 + 2), 16);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
413 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
414 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
415 else if (match = string.match(rgba)) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
416 for (var i = 0; i < rgb.length; i++) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
417 rgb[i] = parseInt(match[i + 1]);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
418 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
419 a = parseFloat(match[4]);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
420 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
421 else if (match = string.match(per)) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
422 for (var i = 0; i < rgb.length; i++) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
423 rgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
424 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
425 a = parseFloat(match[4]);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
426 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
427 else if (match = string.match(keyword)) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
428 if (match[1] == "transparent") {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
429 return [0, 0, 0, 0];
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
430 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
431 rgb = convert.keyword2rgb(match[1]);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
432 if (!rgb) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
433 return;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
434 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
435 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
436
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
437 for (var i = 0; i < rgb.length; i++) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
438 rgb[i] = scale(rgb[i], 0, 255);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
439 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
440 if (!a) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
441 a = 1;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
442 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
443 else {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
444 a = scale(a, 0, 1);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
445 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
446 rgb.push(a);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
447 return rgb;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
448 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
449
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
450 function getHsla(string) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
451 if (!string) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
452 return;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
453 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
454 var hsl = /^hsla?\(\s*(\d+)\s*,\s*([\d\.]+)%\s*,\s*([\d\.]+)%\s*(?:,\s*([\d\.]+)\s*)?\)/;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
455 var match = string.match(hsl);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
456 if (match) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
457 var h = scale(parseInt(match[1]), 0, 360),
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
458 s = scale(parseFloat(match[2]), 0, 100),
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
459 l = scale(parseFloat(match[3]), 0, 100),
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
460 a = scale(parseFloat(match[4]) || 1, 0, 1);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
461 return [h, s, l, a];
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
462 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
463 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
464
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
465 function getRgb(string) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
466 var rgba = getRgba(string);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
467 return rgba && rgba.slice(0, 3);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
468 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
469
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
470 function getHsl(string) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
471 var hsla = getHsla(string);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
472 return hsla && hsla.slice(0, 3);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
473 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
474
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
475 function getAlpha(string) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
476 var vals = getRgba(string);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
477 if (vals) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
478 return vals[3];
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
479 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
480 else if (vals = getHsla(string)) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
481 return vals[3];
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
482 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
483 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
484
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
485 // generators
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
486 function hexString(rgb) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
487 return "#" + hexDouble(rgb[0]) + hexDouble(rgb[1])
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
488 + hexDouble(rgb[2]);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
489 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
490
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
491 function rgbString(rgba, alpha) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
492 if (alpha < 1 || (rgba[3] && rgba[3] < 1)) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
493 return rgbaString(rgba, alpha);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
494 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
495 return "rgb(" + rgba[0] + ", " + rgba[1] + ", " + rgba[2] + ")";
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
496 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
497
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
498 function rgbaString(rgba, alpha) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
499 return "rgba(" + rgba[0] + ", " + rgba[1] + ", " + rgba[2]
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
500 + ", " + (alpha || rgba[3] || 1) + ")";
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
501 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
502
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
503 function percentString(rgba, alpha) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
504 if (alpha < 1 || (rgba[3] && rgba[3] < 1)) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
505 return percentaString(rgba, alpha);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
506 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
507 var r = Math.round(rgba[0]/255 * 100),
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
508 g = Math.round(rgba[1]/255 * 100),
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
509 b = Math.round(rgba[2]/255 * 100);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
510
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
511 return "rgb(" + r + "%, " + g + "%, " + b + "%)";
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
512 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
513
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
514 function percentaString(rgba, alpha) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
515 var r = Math.round(rgba[0]/255 * 100),
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
516 g = Math.round(rgba[1]/255 * 100),
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
517 b = Math.round(rgba[2]/255 * 100);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
518 return "rgba(" + r + "%, " + g + "%, " + b + "%, " + (alpha || rgba[3] || 1) + ")";
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
519 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
520
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
521 function hslString(hsla, alpha) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
522 if (alpha < 1 || (hsla[3] && hsla[3] < 1)) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
523 return hslaString(hsla, alpha);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
524 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
525 return "hsl(" + hsla[0] + ", " + hsla[1] + "%, " + hsla[2] + "%)";
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
526 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
527
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
528 function hslaString(hsla, alpha) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
529 return "hsla(" + hsla[0] + ", " + hsla[1] + "%, " + hsla[2] + "%, "
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
530 + (alpha || hsla[3] || 1) + ")";
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
531 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
532
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
533 function keyword(rgb) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
534 return convert.rgb2keyword(rgb.slice(0, 3));
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
535 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
536
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
537 // helpers
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
538 function scale(num, min, max) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
539 return Math.min(Math.max(min, num), max);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
540 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
541
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
542 function hexDouble(num) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
543 var str = num.toString(16).toUpperCase();
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
544 return (str.length < 2) ? "0" + str : str;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
545 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
546
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
547 });require.register("color-convert", function(module, exports, require, global){
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
548 var conversions = require("conversions");
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
549
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
550 var convert = function() {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
551 return new Converter();
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
552 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
553
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
554 for (var func in conversions) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
555 // export Raw versions
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
556 convert[func + "Raw"] = (function(func) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
557 // accept array or plain args
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
558 return function(arg) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
559 if (typeof arg == "number")
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
560 arg = Array.prototype.slice.call(arguments);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
561 return conversions[func](arg);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
562 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
563 })(func);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
564
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
565 var pair = /(\w+)2(\w+)/.exec(func),
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
566 from = pair[1],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
567 to = pair[2];
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
568
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
569 // export rgb2hsl and ["rgb"]["hsl"]
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
570 convert[from] = convert[from] || {};
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
571
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
572 convert[from][to] = convert[func] = (function(func) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
573 return function(arg) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
574 if (typeof arg == "number") {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
575 arg = Array.prototype.slice.call(arguments);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
576 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
577
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
578 var val = conversions[func](arg);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
579 if (typeof val == "string" || val === undefined) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
580 return val; // keyword
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
581 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
582
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
583 round(val)
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
584 return val;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
585 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
586 })(func);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
587 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
588
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
589
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
590 /* Converter does lazy conversion and caching */
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
591 var Converter = function() {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
592 this.space = "rgb";
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
593 this.convs = {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
594 'rgb': [0, 0, 0]
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
595 };
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
596 };
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
597
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
598 /* Either get the values for a space or
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
599 set the values for a space, depending on args */
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
600 Converter.prototype.routeSpace = function(space, args) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
601 var values = args[0];
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
602 if (values === undefined) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
603 // color.rgb()
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
604 return this.getValues(space);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
605 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
606 // color.rgb(10, 10, 10)
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
607 if (typeof values == "number") {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
608 values = Array.prototype.slice.call(args);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
609 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
610
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
611 return this.setValues(space, values);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
612 };
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
613
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
614 /* Set the values for a space, invalidating cache */
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
615 Converter.prototype.setValues = function(space, values) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
616 this.space = space;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
617 this.convs = {};
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
618 this.convs[space] = values;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
619 return this;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
620 };
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
621
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
622 /* Get the values for a space. If there's already
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
623 a conversion for the space, fetch it, otherwise
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
624 compute it */
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
625 Converter.prototype.getValues = function(space) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
626 var vals = this.convs[space];
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
627 if (!vals) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
628 var fspace = this.space,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
629 from = this.convs[fspace];
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
630 vals = convert[fspace][space](from);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
631
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
632 this.convs[space] = vals;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
633 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
634 else {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
635 round(vals);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
636 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
637 return vals;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
638 };
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
639
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
640 function round(val) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
641 for (var i = 0; i < val.length; i++) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
642 val[i] = Math.round(val[i]);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
643 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
644 };
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
645
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
646 ["rgb", "hsl", "hsv", "cmyk", "keyword"].forEach(function(space) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
647 Converter.prototype[space] = function(vals) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
648 return this.routeSpace(space, arguments);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
649 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
650 });
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
651
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
652 module.exports = convert;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
653 });require.register("conversions", function(module, exports, require, global){
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
654 /* MIT license */
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
655
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
656 module.exports = {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
657 rgb2hsl: rgb2hsl,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
658 rgb2hsv: rgb2hsv,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
659 rgb2cmyk: rgb2cmyk,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
660 rgb2keyword: rgb2keyword,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
661 rgb2xyz: rgb2xyz,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
662 rgb2lab: rgb2lab,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
663
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
664 hsl2rgb: hsl2rgb,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
665 hsl2hsv: hsl2hsv,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
666 hsl2cmyk: hsl2cmyk,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
667 hsl2keyword: hsl2keyword,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
668
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
669 hsv2rgb: hsv2rgb,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
670 hsv2hsl: hsv2hsl,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
671 hsv2cmyk: hsv2cmyk,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
672 hsv2keyword: hsv2keyword,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
673
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
674 cmyk2rgb: cmyk2rgb,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
675 cmyk2hsl: cmyk2hsl,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
676 cmyk2hsv: cmyk2hsv,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
677 cmyk2keyword: cmyk2keyword,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
678
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
679 keyword2rgb: keyword2rgb,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
680 keyword2hsl: keyword2hsl,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
681 keyword2hsv: keyword2hsv,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
682 keyword2cmyk: keyword2cmyk,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
683 keyword2lab: keyword2lab,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
684 keyword2xyz: keyword2xyz,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
685
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
686 xyz2rgb: xyz2rgb,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
687 xyz2lab: xyz2lab,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
688
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
689 lab2xyz: lab2xyz,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
690 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
691
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
692
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
693 function rgb2hsl(rgb) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
694 var r = rgb[0]/255,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
695 g = rgb[1]/255,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
696 b = rgb[2]/255,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
697 min = Math.min(r, g, b),
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
698 max = Math.max(r, g, b),
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
699 delta = max - min,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
700 h, s, l;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
701
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
702 if (max == min)
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
703 h = 0;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
704 else if (r == max)
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
705 h = (g - b) / delta;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
706 else if (g == max)
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
707 h = 2 + (b - r) / delta;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
708 else if (b == max)
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
709 h = 4 + (r - g)/ delta;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
710
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
711 h = Math.min(h * 60, 360);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
712
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
713 if (h < 0)
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
714 h += 360;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
715
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
716 l = (min + max) / 2;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
717
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
718 if (max == min)
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
719 s = 0;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
720 else if (l <= 0.5)
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
721 s = delta / (max + min);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
722 else
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
723 s = delta / (2 - max - min);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
724
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
725 return [h, s * 100, l * 100];
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
726 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
727
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
728 function rgb2hsv(rgb) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
729 var r = rgb[0],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
730 g = rgb[1],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
731 b = rgb[2],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
732 min = Math.min(r, g, b),
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
733 max = Math.max(r, g, b),
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
734 delta = max - min,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
735 h, s, v;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
736
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
737 if (max == 0)
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
738 s = 0;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
739 else
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
740 s = (delta/max * 1000)/10;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
741
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
742 if (max == min)
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
743 h = 0;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
744 else if (r == max)
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
745 h = (g - b) / delta;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
746 else if (g == max)
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
747 h = 2 + (b - r) / delta;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
748 else if (b == max)
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
749 h = 4 + (r - g) / delta;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
750
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
751 h = Math.min(h * 60, 360);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
752
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
753 if (h < 0)
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
754 h += 360;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
755
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
756 v = ((max / 255) * 1000) / 10;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
757
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
758 return [h, s, v];
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
759 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
760
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
761 function rgb2cmyk(rgb) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
762 var r = rgb[0] / 255,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
763 g = rgb[1] / 255,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
764 b = rgb[2] / 255,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
765 c, m, y, k;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
766
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
767 k = Math.min(1 - r, 1 - g, 1 - b);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
768 c = (1 - r - k) / (1 - k);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
769 m = (1 - g - k) / (1 - k);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
770 y = (1 - b - k) / (1 - k);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
771 return [c * 100, m * 100, y * 100, k * 100];
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
772 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
773
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
774 function rgb2keyword(rgb) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
775 return reverseKeywords[JSON.stringify(rgb)];
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
776 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
777
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
778 function rgb2xyz(rgb) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
779 var r = rgb[0] / 255,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
780 g = rgb[1] / 255,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
781 b = rgb[2] / 255;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
782
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
783 // assume sRGB
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
784 r = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
785 g = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
786 b = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
787
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
788 var x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
789 var y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
790 var z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
791
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
792 return [x * 100, y *100, z * 100];
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
793 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
794
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
795 function rgb2lab(rgb) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
796 var xyz = rgb2xyz(rgb),
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
797 x = xyz[0],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
798 y = xyz[1],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
799 z = xyz[2],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
800 l, a, b;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
801
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
802 x /= 95.047;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
803 y /= 100;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
804 z /= 108.883;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
805
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
806 x = x > 0.008856 ? Math.pow(x, 1/3) : (7.787 * x) + (16 / 116);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
807 y = y > 0.008856 ? Math.pow(y, 1/3) : (7.787 * y) + (16 / 116);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
808 z = z > 0.008856 ? Math.pow(z, 1/3) : (7.787 * z) + (16 / 116);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
809
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
810 l = (116 * y) - 16;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
811 a = 500 * (x - y);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
812 b = 200 * (y - z);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
813
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
814 return [l, a, b];
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
815 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
816
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
817
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
818 function hsl2rgb(hsl) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
819 var h = hsl[0] / 360,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
820 s = hsl[1] / 100,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
821 l = hsl[2] / 100,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
822 t1, t2, t3, rgb, val;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
823
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
824 if (s == 0) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
825 val = l * 255;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
826 return [val, val, val];
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
827 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
828
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
829 if (l < 0.5)
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
830 t2 = l * (1 + s);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
831 else
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
832 t2 = l + s - l * s;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
833 t1 = 2 * l - t2;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
834
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
835 rgb = [0, 0, 0];
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
836 for (var i = 0; i < 3; i++) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
837 t3 = h + 1 / 3 * - (i - 1);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
838 t3 < 0 && t3++;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
839 t3 > 1 && t3--;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
840
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
841 if (6 * t3 < 1)
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
842 val = t1 + (t2 - t1) * 6 * t3;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
843 else if (2 * t3 < 1)
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
844 val = t2;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
845 else if (3 * t3 < 2)
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
846 val = t1 + (t2 - t1) * (2 / 3 - t3) * 6;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
847 else
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
848 val = t1;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
849
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
850 rgb[i] = val * 255;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
851 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
852
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
853 return rgb;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
854 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
855
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
856 function hsl2hsv(hsl) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
857 var h = hsl[0],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
858 s = hsl[1] / 100,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
859 l = hsl[2] / 100,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
860 sv, v;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
861 l *= 2;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
862 s *= (l <= 1) ? l : 2 - l;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
863 v = (l + s) / 2;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
864 sv = (2 * s) / (l + s);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
865 return [h, sv * 100, v * 100];
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
866 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
867
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
868 function hsl2cmyk(args) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
869 return rgb2cmyk(hsl2rgb(args));
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
870 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
871
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
872 function hsl2keyword(args) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
873 return rgb2keyword(hsl2rgb(args));
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
874 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
875
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
876
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
877 function hsv2rgb(hsv) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
878 var h = hsv[0] / 60,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
879 s = hsv[1] / 100,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
880 v = hsv[2] / 100,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
881 hi = Math.floor(h) % 6;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
882
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
883 var f = h - Math.floor(h),
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
884 p = 255 * v * (1 - s),
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
885 q = 255 * v * (1 - (s * f)),
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
886 t = 255 * v * (1 - (s * (1 - f))),
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
887 v = 255 * v;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
888
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
889 switch(hi) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
890 case 0:
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
891 return [v, t, p];
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
892 case 1:
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
893 return [q, v, p];
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
894 case 2:
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
895 return [p, v, t];
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
896 case 3:
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
897 return [p, q, v];
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
898 case 4:
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
899 return [t, p, v];
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
900 case 5:
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
901 return [v, p, q];
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
902 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
903 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
904
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
905 function hsv2hsl(hsv) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
906 var h = hsv[0],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
907 s = hsv[1] / 100,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
908 v = hsv[2] / 100,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
909 sl, l;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
910
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
911 l = (2 - s) * v;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
912 sl = s * v;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
913 sl /= (l <= 1) ? l : 2 - l;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
914 l /= 2;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
915 return [h, sl * 100, l * 100];
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
916 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
917
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
918 function hsv2cmyk(args) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
919 return rgb2cmyk(hsv2rgb(args));
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
920 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
921
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
922 function hsv2keyword(args) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
923 return rgb2keyword(hsv2rgb(args));
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
924 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
925
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
926 function cmyk2rgb(cmyk) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
927 var c = cmyk[0] / 100,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
928 m = cmyk[1] / 100,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
929 y = cmyk[2] / 100,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
930 k = cmyk[3] / 100,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
931 r, g, b;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
932
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
933 r = 1 - Math.min(1, c * (1 - k) + k);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
934 g = 1 - Math.min(1, m * (1 - k) + k);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
935 b = 1 - Math.min(1, y * (1 - k) + k);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
936 return [r * 255, g * 255, b * 255];
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
937 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
938
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
939 function cmyk2hsl(args) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
940 return rgb2hsl(cmyk2rgb(args));
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
941 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
942
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
943 function cmyk2hsv(args) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
944 return rgb2hsv(cmyk2rgb(args));
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
945 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
946
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
947 function cmyk2keyword(args) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
948 return rgb2keyword(cmyk2rgb(args));
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
949 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
950
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
951
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
952 function xyz2rgb(xyz) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
953 var x = xyz[0] / 100,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
954 y = xyz[1] / 100,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
955 z = xyz[2] / 100,
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
956 r, g, b;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
957
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
958 r = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
959 g = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
960 b = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
961
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
962 // assume sRGB
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
963 r = r > 0.0031308 ? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
964 : r = (r * 12.92);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
965
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
966 g = g > 0.0031308 ? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
967 : g = (g * 12.92);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
968
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
969 b = b > 0.0031308 ? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
970 : b = (b * 12.92);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
971
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
972 r = (r < 0) ? 0 : r;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
973 g = (g < 0) ? 0 : g;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
974 b = (b < 0) ? 0 : b;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
975
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
976 return [r * 255, g * 255, b * 255];
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
977 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
978
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
979 function xyz2lab(xyz) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
980 var x = xyz[0],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
981 y = xyz[1],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
982 z = xyz[2],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
983 l, a, b;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
984
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
985 x /= 95.047;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
986 y /= 100;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
987 z /= 108.883;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
988
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
989 x = x > 0.008856 ? Math.pow(x, 1/3) : (7.787 * x) + (16 / 116);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
990 y = y > 0.008856 ? Math.pow(y, 1/3) : (7.787 * y) + (16 / 116);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
991 z = z > 0.008856 ? Math.pow(z, 1/3) : (7.787 * z) + (16 / 116);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
992
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
993 l = (116 * y) - 16;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
994 a = 500 * (x - y);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
995 b = 200 * (y - z);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
996
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
997 return [l, a, b];
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
998 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
999
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1000 function lab2xyz(lab) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1001 var l = lab[0],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1002 a = lab[1],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1003 b = lab[2],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1004 x, y, z, y2;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1005
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1006 if (l <= 8) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1007 y = (l * 100) / 903.3;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1008 y2 = (7.787 * (y / 100)) + (16 / 116);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1009 } else {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1010 y = 100 * Math.pow((l + 16) / 116, 3);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1011 y2 = Math.pow(y / 100, 1/3);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1012 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1013
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1014 x = x / 95.047 <= 0.008856 ? x = (95.047 * ((a / 500) + y2 - (16 / 116))) / 7.787 : 95.047 * Math.pow((a / 500) + y2, 3);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1015
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1016 z = z / 108.883 <= 0.008859 ? z = (108.883 * (y2 - (b / 200) - (16 / 116))) / 7.787 : 108.883 * Math.pow(y2 - (b / 200), 3);
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1017
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1018 return [x, y, z];
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1019 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1020
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1021 function keyword2rgb(keyword) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1022 return cssKeywords[keyword];
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1023 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1024
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1025 function keyword2hsl(args) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1026 return rgb2hsl(keyword2rgb(args));
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1027 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1028
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1029 function keyword2hsv(args) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1030 return rgb2hsv(keyword2rgb(args));
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1031 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1032
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1033 function keyword2cmyk(args) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1034 return rgb2cmyk(keyword2rgb(args));
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1035 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1036
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1037 function keyword2lab(args) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1038 return rgb2lab(keyword2rgb(args));
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1039 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1040
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1041 function keyword2xyz(args) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1042 return rgb2xyz(keyword2rgb(args));
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1043 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1044
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1045 var cssKeywords = {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1046 aliceblue: [240,248,255],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1047 antiquewhite: [250,235,215],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1048 aqua: [0,255,255],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1049 aquamarine: [127,255,212],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1050 azure: [240,255,255],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1051 beige: [245,245,220],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1052 bisque: [255,228,196],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1053 black: [0,0,0],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1054 blanchedalmond: [255,235,205],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1055 blue: [0,0,255],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1056 blueviolet: [138,43,226],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1057 brown: [165,42,42],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1058 burlywood: [222,184,135],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1059 cadetblue: [95,158,160],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1060 chartreuse: [127,255,0],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1061 chocolate: [210,105,30],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1062 coral: [255,127,80],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1063 cornflowerblue: [100,149,237],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1064 cornsilk: [255,248,220],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1065 crimson: [220,20,60],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1066 cyan: [0,255,255],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1067 darkblue: [0,0,139],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1068 darkcyan: [0,139,139],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1069 darkgoldenrod: [184,134,11],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1070 darkgray: [169,169,169],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1071 darkgreen: [0,100,0],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1072 darkgrey: [169,169,169],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1073 darkkhaki: [189,183,107],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1074 darkmagenta: [139,0,139],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1075 darkolivegreen: [85,107,47],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1076 darkorange: [255,140,0],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1077 darkorchid: [153,50,204],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1078 darkred: [139,0,0],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1079 darksalmon: [233,150,122],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1080 darkseagreen: [143,188,143],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1081 darkslateblue: [72,61,139],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1082 darkslategray: [47,79,79],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1083 darkslategrey: [47,79,79],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1084 darkturquoise: [0,206,209],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1085 darkviolet: [148,0,211],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1086 deeppink: [255,20,147],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1087 deepskyblue: [0,191,255],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1088 dimgray: [105,105,105],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1089 dimgrey: [105,105,105],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1090 dodgerblue: [30,144,255],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1091 firebrick: [178,34,34],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1092 floralwhite: [255,250,240],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1093 forestgreen: [34,139,34],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1094 fuchsia: [255,0,255],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1095 gainsboro: [220,220,220],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1096 ghostwhite: [248,248,255],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1097 gold: [255,215,0],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1098 goldenrod: [218,165,32],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1099 gray: [128,128,128],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1100 green: [0,128,0],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1101 greenyellow: [173,255,47],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1102 grey: [128,128,128],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1103 honeydew: [240,255,240],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1104 hotpink: [255,105,180],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1105 indianred: [205,92,92],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1106 indigo: [75,0,130],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1107 ivory: [255,255,240],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1108 khaki: [240,230,140],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1109 lavender: [230,230,250],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1110 lavenderblush: [255,240,245],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1111 lawngreen: [124,252,0],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1112 lemonchiffon: [255,250,205],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1113 lightblue: [173,216,230],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1114 lightcoral: [240,128,128],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1115 lightcyan: [224,255,255],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1116 lightgoldenrodyellow: [250,250,210],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1117 lightgray: [211,211,211],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1118 lightgreen: [144,238,144],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1119 lightgrey: [211,211,211],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1120 lightpink: [255,182,193],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1121 lightsalmon: [255,160,122],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1122 lightseagreen: [32,178,170],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1123 lightskyblue: [135,206,250],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1124 lightslategray: [119,136,153],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1125 lightslategrey: [119,136,153],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1126 lightsteelblue: [176,196,222],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1127 lightyellow: [255,255,224],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1128 lime: [0,255,0],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1129 limegreen: [50,205,50],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1130 linen: [250,240,230],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1131 magenta: [255,0,255],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1132 maroon: [128,0,0],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1133 mediumaquamarine: [102,205,170],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1134 mediumblue: [0,0,205],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1135 mediumorchid: [186,85,211],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1136 mediumpurple: [147,112,219],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1137 mediumseagreen: [60,179,113],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1138 mediumslateblue: [123,104,238],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1139 mediumspringgreen: [0,250,154],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1140 mediumturquoise: [72,209,204],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1141 mediumvioletred: [199,21,133],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1142 midnightblue: [25,25,112],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1143 mintcream: [245,255,250],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1144 mistyrose: [255,228,225],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1145 moccasin: [255,228,181],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1146 navajowhite: [255,222,173],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1147 navy: [0,0,128],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1148 oldlace: [253,245,230],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1149 olive: [128,128,0],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1150 olivedrab: [107,142,35],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1151 orange: [255,165,0],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1152 orangered: [255,69,0],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1153 orchid: [218,112,214],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1154 palegoldenrod: [238,232,170],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1155 palegreen: [152,251,152],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1156 paleturquoise: [175,238,238],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1157 palevioletred: [219,112,147],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1158 papayawhip: [255,239,213],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1159 peachpuff: [255,218,185],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1160 peru: [205,133,63],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1161 pink: [255,192,203],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1162 plum: [221,160,221],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1163 powderblue: [176,224,230],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1164 purple: [128,0,128],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1165 red: [255,0,0],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1166 rosybrown: [188,143,143],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1167 royalblue: [65,105,225],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1168 saddlebrown: [139,69,19],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1169 salmon: [250,128,114],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1170 sandybrown: [244,164,96],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1171 seagreen: [46,139,87],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1172 seashell: [255,245,238],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1173 sienna: [160,82,45],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1174 silver: [192,192,192],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1175 skyblue: [135,206,235],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1176 slateblue: [106,90,205],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1177 slategray: [112,128,144],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1178 slategrey: [112,128,144],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1179 snow: [255,250,250],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1180 springgreen: [0,255,127],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1181 steelblue: [70,130,180],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1182 tan: [210,180,140],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1183 teal: [0,128,128],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1184 thistle: [216,191,216],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1185 tomato: [255,99,71],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1186 turquoise: [64,224,208],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1187 violet: [238,130,238],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1188 wheat: [245,222,179],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1189 white: [255,255,255],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1190 whitesmoke: [245,245,245],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1191 yellow: [255,255,0],
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1192 yellowgreen: [154,205,50]
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1193 };
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1194
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1195 var reverseKeywords = {};
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1196 for (var key in cssKeywords) {
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1197 reverseKeywords[JSON.stringify(cssKeywords[key])] = key;
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1198 }
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1199
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1200 });Color = require('color.js');
1407e3634bcf Uploaded r11 from test tool shed.
adam-novak
parents:
diff changeset
1201 })();