@csstools/convert-colors 1.4.0 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -50
- package/index.js +2 -359
- package/index.js.map +1 -0
- package/index.mjs +2 -0
- package/index.mjs.map +1 -0
- package/package.json +33 -32
- package/CHANGELOG.md +0 -27
- package/index.bundle.js +0 -1091
- package/lib/hsl-hsv.js +0 -30
- package/lib/hwb-hsv.js +0 -31
- package/lib/lab-lch.js +0 -31
- package/lib/lab-xyz.js +0 -68
- package/lib/rgb-hsl.js +0 -50
- package/lib/rgb-hsv.js +0 -47
- package/lib/rgb-hwb.js +0 -32
- package/lib/rgb-xyz.js +0 -42
- package/lib/util.js +0 -87
package/index.bundle.js
DELETED
|
@@ -1,1091 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
/* Convert between RGB and Hue
|
|
6
|
-
/* ========================================================================== */
|
|
7
|
-
|
|
8
|
-
function rgb2hue(rgbR, rgbG, rgbB) {
|
|
9
|
-
var fallbackhue = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
|
|
10
|
-
|
|
11
|
-
var value = rgb2value(rgbR, rgbG, rgbB);
|
|
12
|
-
var whiteness = rgb2whiteness(rgbR, rgbG, rgbB);
|
|
13
|
-
var delta = value - whiteness;
|
|
14
|
-
|
|
15
|
-
if (delta) {
|
|
16
|
-
// calculate segment
|
|
17
|
-
var segment = value === rgbR ? (rgbG - rgbB) / delta : value === rgbG ? (rgbB - rgbR) / delta : (rgbR - rgbG) / delta;
|
|
18
|
-
|
|
19
|
-
// calculate shift
|
|
20
|
-
var shift = value === rgbR ? segment < 0 ? 360 / 60 : 0 / 60 : value === rgbG ? 120 / 60 : 240 / 60;
|
|
21
|
-
|
|
22
|
-
// calculate hue
|
|
23
|
-
var hue = (segment + shift) * 60;
|
|
24
|
-
|
|
25
|
-
return hue;
|
|
26
|
-
} else {
|
|
27
|
-
// otherwise return the fallback hue
|
|
28
|
-
return fallbackhue;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
function hue2rgb(t1, t2, hue) {
|
|
33
|
-
// calculate the ranged hue
|
|
34
|
-
var rhue = hue < 0 ? hue + 360 : hue > 360 ? hue - 360 : hue;
|
|
35
|
-
|
|
36
|
-
// calculate the rgb value
|
|
37
|
-
var rgb = rhue * 6 < 360 ? t1 + (t2 - t1) * rhue / 60 : rhue * 2 < 360 ? t2 : rhue * 3 < 720 ? t1 + (t2 - t1) * (240 - rhue) / 60 : t1;
|
|
38
|
-
|
|
39
|
-
return rgb;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
/* RGB tooling
|
|
43
|
-
/* ========================================================================== */
|
|
44
|
-
|
|
45
|
-
function rgb2value(rgbR, rgbG, rgbB) {
|
|
46
|
-
var value = Math.max(rgbR, rgbG, rgbB);
|
|
47
|
-
|
|
48
|
-
return value;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
function rgb2whiteness(rgbR, rgbG, rgbB) {
|
|
52
|
-
var whiteness = Math.min(rgbR, rgbG, rgbB);
|
|
53
|
-
|
|
54
|
-
return whiteness;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
/* Math matrix
|
|
58
|
-
/* ========================================================================== */
|
|
59
|
-
|
|
60
|
-
function matrix(params, mats) {
|
|
61
|
-
return mats.map(function (mat) {
|
|
62
|
-
return mat.reduce(function (acc, value, index) {
|
|
63
|
-
return acc + params[index] * value;
|
|
64
|
-
}, 0);
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
/* D50 reference white
|
|
69
|
-
/* ========================================================================== */
|
|
70
|
-
|
|
71
|
-
var wd50X = 96.42;
|
|
72
|
-
var wd50Y = 100;
|
|
73
|
-
var wd50Z = 82.49;
|
|
74
|
-
|
|
75
|
-
var epsilon = Math.pow(6, 3) / Math.pow(29, 3);
|
|
76
|
-
|
|
77
|
-
/* Kappa
|
|
78
|
-
/* ========================================================================== */
|
|
79
|
-
|
|
80
|
-
var kappa = Math.pow(29, 3) / Math.pow(3, 3);
|
|
81
|
-
|
|
82
|
-
/* Convert between RGB and HSL
|
|
83
|
-
/* ========================================================================== */
|
|
84
|
-
|
|
85
|
-
function rgb2hsl(rgbR, rgbG, rgbB, fallbackhue) {
|
|
86
|
-
var hslH = rgb2hue(rgbR, rgbG, rgbB, fallbackhue);
|
|
87
|
-
var hslV = rgb2value(rgbR, rgbG, rgbB);
|
|
88
|
-
var hslW = rgb2whiteness(rgbR, rgbG, rgbB);
|
|
89
|
-
|
|
90
|
-
// calculate value/whiteness delta
|
|
91
|
-
var hslD = hslV - hslW;
|
|
92
|
-
|
|
93
|
-
// calculate lightness
|
|
94
|
-
var hslL = (hslV + hslW) / 2;
|
|
95
|
-
|
|
96
|
-
// calculate saturation
|
|
97
|
-
var hslS = hslD === 0 ? 0 : hslD / (100 - Math.abs(2 * hslL - 100)) * 100;
|
|
98
|
-
|
|
99
|
-
return [hslH, hslS, hslL];
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
function hsl2rgb(hslH, hslS, hslL) {
|
|
103
|
-
// calcuate t2
|
|
104
|
-
var t2 = hslL <= 50 ? hslL * (hslS + 100) / 100 : hslL + hslS - hslL * hslS / 100;
|
|
105
|
-
|
|
106
|
-
// calcuate t1
|
|
107
|
-
var t1 = hslL * 2 - t2;
|
|
108
|
-
|
|
109
|
-
// calculate rgb
|
|
110
|
-
var _ref = [hue2rgb(t1, t2, hslH + 120), hue2rgb(t1, t2, hslH), hue2rgb(t1, t2, hslH - 120)],
|
|
111
|
-
rgbR = _ref[0],
|
|
112
|
-
rgbG = _ref[1],
|
|
113
|
-
rgbB = _ref[2];
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
return [rgbR, rgbG, rgbB];
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
/*
|
|
120
|
-
|
|
121
|
-
References
|
|
122
|
-
----------
|
|
123
|
-
|
|
124
|
-
- https://www.w3.org/TR/css-color-3/#hsl-color
|
|
125
|
-
- https://www.w3.org/TR/css-color-4/#hsl-to-rgb
|
|
126
|
-
- https://www.rapidtables.com/convert/color/rgb-to-hsl.html
|
|
127
|
-
- https://www.rapidtables.com/convert/color/hsl-to-rgb.html
|
|
128
|
-
|
|
129
|
-
/* ========================================================================== */
|
|
130
|
-
|
|
131
|
-
var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
|
|
132
|
-
|
|
133
|
-
/* Convert between RGB and HWB
|
|
134
|
-
/* ========================================================================== */
|
|
135
|
-
|
|
136
|
-
function rgb2hwb(rgbR, rgbG, rgbB, fallbackhue) {
|
|
137
|
-
var hwbH = rgb2hue(rgbR, rgbG, rgbB, fallbackhue);
|
|
138
|
-
var hwbW = rgb2whiteness(rgbR, rgbG, rgbB);
|
|
139
|
-
var hwbV = rgb2value(rgbR, rgbG, rgbB);
|
|
140
|
-
var hwbB = 100 - hwbV;
|
|
141
|
-
|
|
142
|
-
return [hwbH, hwbW, hwbB];
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
function hwb2rgb(hwbH, hwbW, hwbB, fallbackhue) {
|
|
146
|
-
var _hsl2rgb$map = hsl2rgb(hwbH, 100, 50, fallbackhue).map(function (v) {
|
|
147
|
-
return v * (100 - hwbW - hwbB) / 100 + hwbW;
|
|
148
|
-
}),
|
|
149
|
-
_hsl2rgb$map2 = _slicedToArray(_hsl2rgb$map, 3),
|
|
150
|
-
rgbR = _hsl2rgb$map2[0],
|
|
151
|
-
rgbG = _hsl2rgb$map2[1],
|
|
152
|
-
rgbB = _hsl2rgb$map2[2];
|
|
153
|
-
|
|
154
|
-
return [rgbR, rgbG, rgbB];
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
/*
|
|
158
|
-
|
|
159
|
-
References
|
|
160
|
-
----------
|
|
161
|
-
|
|
162
|
-
- https://www.w3.org/TR/css-color-4/#hwb-to-rgb
|
|
163
|
-
- http://alvyray.com/Papers/CG/hwb2rgb.htm
|
|
164
|
-
|
|
165
|
-
/* ========================================================================== */
|
|
166
|
-
|
|
167
|
-
var _slicedToArray$1 = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
|
|
168
|
-
|
|
169
|
-
/* Convert between RGB and HSV
|
|
170
|
-
/* ========================================================================== */
|
|
171
|
-
|
|
172
|
-
function rgb2hsv(rgbR, rgbG, rgbB, fallbackhue) {
|
|
173
|
-
var hsvV = rgb2value(rgbR, rgbG, rgbB);
|
|
174
|
-
var hsvW = rgb2whiteness(rgbR, rgbG, rgbB);
|
|
175
|
-
var hsvH = rgb2hue(rgbR, rgbG, rgbB, fallbackhue);
|
|
176
|
-
|
|
177
|
-
// calculate saturation
|
|
178
|
-
var hsvS = hsvV === hsvW ? 0 : (hsvV - hsvW) / hsvV * 100;
|
|
179
|
-
|
|
180
|
-
return [hsvH, hsvS, hsvV];
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
function hsv2rgb(hsvH, hsvS, hsvV) {
|
|
184
|
-
var rgbI = Math.floor(hsvH / 60);
|
|
185
|
-
|
|
186
|
-
// calculate rgb parts
|
|
187
|
-
var rgbF = hsvH / 60 - rgbI & 1 ? hsvH / 60 - rgbI : 1 - hsvH / 60 - rgbI;
|
|
188
|
-
var rgbM = hsvV * (100 - hsvS) / 100;
|
|
189
|
-
var rgbN = hsvV * (100 - hsvS * rgbF) / 100;
|
|
190
|
-
|
|
191
|
-
var _ref = rgbI === 5 ? [hsvV, rgbM, rgbN] : rgbI === 4 ? [rgbN, rgbM, hsvV] : rgbI === 3 ? [rgbM, rgbN, hsvV] : rgbI === 2 ? [rgbM, hsvV, rgbN] : rgbI === 1 ? [rgbN, hsvV, rgbM] : [hsvV, rgbN, rgbM],
|
|
192
|
-
_ref2 = _slicedToArray$1(_ref, 3),
|
|
193
|
-
rgbR = _ref2[0],
|
|
194
|
-
rgbG = _ref2[1],
|
|
195
|
-
rgbB = _ref2[2];
|
|
196
|
-
|
|
197
|
-
return [rgbR, rgbG, rgbB];
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
/*
|
|
201
|
-
|
|
202
|
-
References
|
|
203
|
-
----------
|
|
204
|
-
|
|
205
|
-
- http://alvyray.com/Papers/CG/hsv2rgb.htm
|
|
206
|
-
|
|
207
|
-
/* ========================================================================== */
|
|
208
|
-
|
|
209
|
-
var _slicedToArray$2 = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
|
|
210
|
-
|
|
211
|
-
/* Convert between RGB and XYZ
|
|
212
|
-
/* ========================================================================== */
|
|
213
|
-
|
|
214
|
-
function rgb2xyz(rgbR, rgbG, rgbB) {
|
|
215
|
-
var _map = [rgbR, rgbG, rgbB].map(function (v) {
|
|
216
|
-
return v > 4.045 ? Math.pow((v + 5.5) / 105.5, 2.4) * 100 : v / 12.92;
|
|
217
|
-
}),
|
|
218
|
-
_map2 = _slicedToArray$2(_map, 3),
|
|
219
|
-
lrgbR = _map2[0],
|
|
220
|
-
lrgbB = _map2[1],
|
|
221
|
-
lrgbG = _map2[2];
|
|
222
|
-
|
|
223
|
-
var _matrix = matrix([lrgbR, lrgbB, lrgbG], [[0.4124564, 0.3575761, 0.1804375], [0.2126729, 0.7151522, 0.0721750], [0.0193339, 0.1191920, 0.9503041]]),
|
|
224
|
-
_matrix2 = _slicedToArray$2(_matrix, 3),
|
|
225
|
-
xyzX = _matrix2[0],
|
|
226
|
-
xyzY = _matrix2[1],
|
|
227
|
-
xyzZ = _matrix2[2];
|
|
228
|
-
|
|
229
|
-
return [xyzX, xyzY, xyzZ];
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
function xyz2rgb(xyzX, xyzY, xyzZ) {
|
|
233
|
-
var _matrix3 = matrix([xyzX, xyzY, xyzZ], [[3.2404542, -1.5371385, -0.4985314], [-0.9692660, 1.8760108, 0.0415560], [0.0556434, -0.2040259, 1.0572252]]),
|
|
234
|
-
_matrix4 = _slicedToArray$2(_matrix3, 3),
|
|
235
|
-
lrgbR = _matrix4[0],
|
|
236
|
-
lrgbB = _matrix4[1],
|
|
237
|
-
lrgbG = _matrix4[2];
|
|
238
|
-
|
|
239
|
-
var _map3 = [lrgbR, lrgbB, lrgbG].map(function (v) {
|
|
240
|
-
return v > 0.31308 ? 1.055 * Math.pow(v / 100, 1 / 2.4) * 100 - 5.5 : 12.92 * v;
|
|
241
|
-
}),
|
|
242
|
-
_map4 = _slicedToArray$2(_map3, 3),
|
|
243
|
-
rgbR = _map4[0],
|
|
244
|
-
rgbG = _map4[1],
|
|
245
|
-
rgbB = _map4[2];
|
|
246
|
-
|
|
247
|
-
return [rgbR, rgbG, rgbB];
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
/*
|
|
251
|
-
|
|
252
|
-
References
|
|
253
|
-
----------
|
|
254
|
-
|
|
255
|
-
- https://www.w3.org/TR/css-color-4/#rgb-to-lab
|
|
256
|
-
- https://www.w3.org/TR/css-color-4/#color-conversion-code
|
|
257
|
-
|
|
258
|
-
/* ========================================================================== */
|
|
259
|
-
|
|
260
|
-
/* Convert between HSL and HSV
|
|
261
|
-
/* ========================================================================== */
|
|
262
|
-
|
|
263
|
-
function hsl2hsv(hslH, hslS, hslL) {
|
|
264
|
-
var hsv1 = hslS * (hslL < 50 ? hslL : 100 - hslL) / 100;
|
|
265
|
-
var hsvS = hsv1 === 0 ? 0 : 2 * hsv1 / (hslL + hsv1) * 100;
|
|
266
|
-
var hsvV = hslL + hsv1;
|
|
267
|
-
|
|
268
|
-
return [hslH, hsvS, hsvV];
|
|
269
|
-
}
|
|
270
|
-
|
|
271
|
-
function hsv2hsl(hsvH, hsvS, hsvV) {
|
|
272
|
-
var hslL = (200 - hsvS) * hsvV / 100;
|
|
273
|
-
|
|
274
|
-
var hslS = hslL === 0 || hslL === 200 ? 0 : hsvS * hsvV / 100 / (hslL <= 100 ? hslL : 200 - hslL) * 100,
|
|
275
|
-
hslV = hslL * 5 / 10;
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
return [hsvH, hslS, hslV];
|
|
279
|
-
}
|
|
280
|
-
|
|
281
|
-
/*
|
|
282
|
-
|
|
283
|
-
References
|
|
284
|
-
----------
|
|
285
|
-
|
|
286
|
-
- https://gist.github.com/defims/0ca2ef8832833186ed396a2f8a204117
|
|
287
|
-
|
|
288
|
-
/* ========================================================================== */
|
|
289
|
-
|
|
290
|
-
/* Convert between HWB and HSV
|
|
291
|
-
/* ========================================================================== */
|
|
292
|
-
|
|
293
|
-
function hwb2hsv(hwbH, hwbW, hwbB) {
|
|
294
|
-
var hsvH = hwbH,
|
|
295
|
-
hsvS = hwbB === 100 ? 0 : 100 - hwbW / (100 - hwbB) * 100,
|
|
296
|
-
hsvV = 100 - hwbB;
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
return [hsvH, hsvS, hsvV];
|
|
300
|
-
}
|
|
301
|
-
|
|
302
|
-
function hsv2hwb(hsvH, hsvS, hsvV) {
|
|
303
|
-
var hwbH = hsvH,
|
|
304
|
-
hwbW = (100 - hsvS) * hsvV / 100,
|
|
305
|
-
hwbB = 100 - hsvV;
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
return [hwbH, hwbW, hwbB];
|
|
309
|
-
}
|
|
310
|
-
|
|
311
|
-
/*
|
|
312
|
-
|
|
313
|
-
References
|
|
314
|
-
----------
|
|
315
|
-
|
|
316
|
-
- https://en.wikipedia.org/wiki/HWB_color_model#Converting_to_and_from_HSV
|
|
317
|
-
|
|
318
|
-
/* ========================================================================== */
|
|
319
|
-
|
|
320
|
-
var _slicedToArray$3 = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
|
|
321
|
-
|
|
322
|
-
/* Convert between Lab and XYZ
|
|
323
|
-
/* ========================================================================== */
|
|
324
|
-
|
|
325
|
-
function lab2xyz(labL, labA, labB) {
|
|
326
|
-
// compute f, starting with the luminance-related term
|
|
327
|
-
var f2 = (labL + 16) / 116;
|
|
328
|
-
var f1 = labA / 500 + f2;
|
|
329
|
-
var f3 = f2 - labB / 200;
|
|
330
|
-
|
|
331
|
-
// compute pre-scaled XYZ
|
|
332
|
-
var initX = Math.pow(f1, 3) > epsilon ? Math.pow(f1, 3) : (116 * f1 - 16) / kappa,
|
|
333
|
-
initY = labL > kappa * epsilon ? Math.pow((labL + 16) / 116, 3) : labL / kappa,
|
|
334
|
-
initZ = Math.pow(f3, 3) > epsilon ? Math.pow(f3, 3) : (116 * f3 - 16) / kappa;
|
|
335
|
-
|
|
336
|
-
var _matrix = matrix(
|
|
337
|
-
// compute XYZ by scaling pre-scaled XYZ by reference white
|
|
338
|
-
[initX * wd50X, initY * wd50Y, initZ * wd50Z],
|
|
339
|
-
// calculate D65 XYZ from D50 XYZ
|
|
340
|
-
[[0.9555766, -0.0230393, 0.0631636], [-0.0282895, 1.0099416, 0.0210077], [0.0122982, -0.0204830, 1.3299098]]),
|
|
341
|
-
_matrix2 = _slicedToArray$3(_matrix, 3),
|
|
342
|
-
xyzX = _matrix2[0],
|
|
343
|
-
xyzY = _matrix2[1],
|
|
344
|
-
xyzZ = _matrix2[2];
|
|
345
|
-
|
|
346
|
-
return [xyzX, xyzY, xyzZ];
|
|
347
|
-
}
|
|
348
|
-
|
|
349
|
-
function xyz2lab(xyzX, xyzY, xyzZ) {
|
|
350
|
-
// calculate D50 XYZ from D65 XYZ
|
|
351
|
-
var _matrix3 = matrix([xyzX, xyzY, xyzZ], [[1.0478112, 0.0228866, -0.0501270], [0.0295424, 0.9904844, -0.0170491], [-0.0092345, 0.0150436, 0.7521316]]),
|
|
352
|
-
_matrix4 = _slicedToArray$3(_matrix3, 3),
|
|
353
|
-
d50X = _matrix4[0],
|
|
354
|
-
d50Y = _matrix4[1],
|
|
355
|
-
d50Z = _matrix4[2];
|
|
356
|
-
|
|
357
|
-
// calculate f
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
var _map = [d50X / wd50X, d50Y / wd50Y, d50Z / wd50Z].map(function (value) {
|
|
361
|
-
return value > epsilon ? Math.cbrt(value) : (kappa * value + 16) / 116;
|
|
362
|
-
}),
|
|
363
|
-
_map2 = _slicedToArray$3(_map, 3),
|
|
364
|
-
f1 = _map2[0],
|
|
365
|
-
f2 = _map2[1],
|
|
366
|
-
f3 = _map2[2];
|
|
367
|
-
|
|
368
|
-
var labL = 116 * f2 - 16,
|
|
369
|
-
labA = 500 * (f1 - f2),
|
|
370
|
-
labB = 200 * (f2 - f3);
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
return [labL, labA, labB];
|
|
374
|
-
}
|
|
375
|
-
|
|
376
|
-
/*
|
|
377
|
-
|
|
378
|
-
References
|
|
379
|
-
----------
|
|
380
|
-
|
|
381
|
-
- https://www.w3.org/TR/css-color-4/#rgb-to-lab
|
|
382
|
-
- https://www.w3.org/TR/css-color-4/#color-conversion-code
|
|
383
|
-
- https://www.easyrgb.com/en/math.php
|
|
384
|
-
|
|
385
|
-
/* ========================================================================== */
|
|
386
|
-
|
|
387
|
-
/* Convert between Lab and XYZ
|
|
388
|
-
/* ========================================================================== */
|
|
389
|
-
|
|
390
|
-
function lab2lch(labL, labA, labB) {
|
|
391
|
-
var _ref = [Math.sqrt(Math.pow(labA, 2) + Math.pow(labB, 2)), // convert to chroma
|
|
392
|
-
Math.atan2(labB, labA) * 180 / Math.PI // convert to hue, in degrees
|
|
393
|
-
],
|
|
394
|
-
lchC = _ref[0],
|
|
395
|
-
lchH = _ref[1];
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
return [labL, lchC, lchH];
|
|
399
|
-
}
|
|
400
|
-
|
|
401
|
-
function lch2lab(lchL, lchC, lchH) {
|
|
402
|
-
// convert to Lab a and b from the polar form
|
|
403
|
-
var labA = lchC * Math.cos(lchH * Math.PI / 180),
|
|
404
|
-
labB = lchC * Math.sin(lchH * Math.PI / 180);
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
return [lchL, labA, labB];
|
|
408
|
-
}
|
|
409
|
-
|
|
410
|
-
/*
|
|
411
|
-
|
|
412
|
-
References
|
|
413
|
-
----------
|
|
414
|
-
|
|
415
|
-
- https://www.w3.org/TR/css-color-4/#lch-to-lab
|
|
416
|
-
- https://www.w3.org/TR/css-color-4/#color-conversion-code
|
|
417
|
-
|
|
418
|
-
/* ========================================================================== */
|
|
419
|
-
|
|
420
|
-
var _slicedToArray$4 = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
|
|
421
|
-
|
|
422
|
-
/* Convert between RGB and Lab
|
|
423
|
-
/* ========================================================================== */
|
|
424
|
-
|
|
425
|
-
function rgb2lab(rgbR, rgbG, rgbB) {
|
|
426
|
-
var _rgb2xyz = rgb2xyz(rgbR, rgbG, rgbB),
|
|
427
|
-
_rgb2xyz2 = _slicedToArray$4(_rgb2xyz, 3),
|
|
428
|
-
xyzX = _rgb2xyz2[0],
|
|
429
|
-
xyzY = _rgb2xyz2[1],
|
|
430
|
-
xyzZ = _rgb2xyz2[2];
|
|
431
|
-
|
|
432
|
-
var _xyz2lab = xyz2lab(xyzX, xyzY, xyzZ),
|
|
433
|
-
_xyz2lab2 = _slicedToArray$4(_xyz2lab, 3),
|
|
434
|
-
labL = _xyz2lab2[0],
|
|
435
|
-
labA = _xyz2lab2[1],
|
|
436
|
-
labB = _xyz2lab2[2];
|
|
437
|
-
|
|
438
|
-
return [labL, labA, labB];
|
|
439
|
-
}
|
|
440
|
-
|
|
441
|
-
function lab2rgb(labL, labA, labB) {
|
|
442
|
-
var _lab2xyz = lab2xyz(labL, labA, labB),
|
|
443
|
-
_lab2xyz2 = _slicedToArray$4(_lab2xyz, 3),
|
|
444
|
-
xyzX = _lab2xyz2[0],
|
|
445
|
-
xyzY = _lab2xyz2[1],
|
|
446
|
-
xyzZ = _lab2xyz2[2];
|
|
447
|
-
|
|
448
|
-
var _xyz2rgb = xyz2rgb(xyzX, xyzY, xyzZ),
|
|
449
|
-
_xyz2rgb2 = _slicedToArray$4(_xyz2rgb, 3),
|
|
450
|
-
rgbR = _xyz2rgb2[0],
|
|
451
|
-
rgbG = _xyz2rgb2[1],
|
|
452
|
-
rgbB = _xyz2rgb2[2];
|
|
453
|
-
|
|
454
|
-
return [rgbR, rgbG, rgbB];
|
|
455
|
-
}
|
|
456
|
-
|
|
457
|
-
/* Convert between RGB and LCH
|
|
458
|
-
/* ========================================================================== */
|
|
459
|
-
|
|
460
|
-
function rgb2lch(rgbR, rgbG, rgbB) {
|
|
461
|
-
var _rgb2xyz3 = rgb2xyz(rgbR, rgbG, rgbB),
|
|
462
|
-
_rgb2xyz4 = _slicedToArray$4(_rgb2xyz3, 3),
|
|
463
|
-
xyzX = _rgb2xyz4[0],
|
|
464
|
-
xyzY = _rgb2xyz4[1],
|
|
465
|
-
xyzZ = _rgb2xyz4[2];
|
|
466
|
-
|
|
467
|
-
var _xyz2lab3 = xyz2lab(xyzX, xyzY, xyzZ),
|
|
468
|
-
_xyz2lab4 = _slicedToArray$4(_xyz2lab3, 3),
|
|
469
|
-
labL = _xyz2lab4[0],
|
|
470
|
-
labA = _xyz2lab4[1],
|
|
471
|
-
labB = _xyz2lab4[2];
|
|
472
|
-
|
|
473
|
-
var _lab2lch = lab2lch(labL, labA, labB),
|
|
474
|
-
_lab2lch2 = _slicedToArray$4(_lab2lch, 3),
|
|
475
|
-
lchL = _lab2lch2[0],
|
|
476
|
-
lchC = _lab2lch2[1],
|
|
477
|
-
lchH = _lab2lch2[2];
|
|
478
|
-
|
|
479
|
-
return [lchL, lchC, lchH];
|
|
480
|
-
}
|
|
481
|
-
|
|
482
|
-
function lch2rgb(lchL, lchC, lchH) {
|
|
483
|
-
var _lch2lab = lch2lab(lchL, lchC, lchH),
|
|
484
|
-
_lch2lab2 = _slicedToArray$4(_lch2lab, 3),
|
|
485
|
-
labL = _lch2lab2[0],
|
|
486
|
-
labA = _lch2lab2[1],
|
|
487
|
-
labB = _lch2lab2[2];
|
|
488
|
-
|
|
489
|
-
var _lab2xyz3 = lab2xyz(labL, labA, labB),
|
|
490
|
-
_lab2xyz4 = _slicedToArray$4(_lab2xyz3, 3),
|
|
491
|
-
xyzX = _lab2xyz4[0],
|
|
492
|
-
xyzY = _lab2xyz4[1],
|
|
493
|
-
xyzZ = _lab2xyz4[2];
|
|
494
|
-
|
|
495
|
-
var _xyz2rgb3 = xyz2rgb(xyzX, xyzY, xyzZ),
|
|
496
|
-
_xyz2rgb4 = _slicedToArray$4(_xyz2rgb3, 3),
|
|
497
|
-
rgbR = _xyz2rgb4[0],
|
|
498
|
-
rgbG = _xyz2rgb4[1],
|
|
499
|
-
rgbB = _xyz2rgb4[2];
|
|
500
|
-
|
|
501
|
-
return [rgbR, rgbG, rgbB];
|
|
502
|
-
}
|
|
503
|
-
|
|
504
|
-
/* Convert between HSL and HWB
|
|
505
|
-
/* ========================================================================== */
|
|
506
|
-
|
|
507
|
-
function hwb2hsl(hwbH, hwbW, hwbB) {
|
|
508
|
-
var _hwb2hsv = hwb2hsv(hwbH, hwbW, hwbB),
|
|
509
|
-
_hwb2hsv2 = _slicedToArray$4(_hwb2hsv, 3),
|
|
510
|
-
hsvH = _hwb2hsv2[0],
|
|
511
|
-
hsvS = _hwb2hsv2[1],
|
|
512
|
-
hsvV = _hwb2hsv2[2];
|
|
513
|
-
|
|
514
|
-
var _hsv2hsl = hsv2hsl(hsvH, hsvS, hsvV),
|
|
515
|
-
_hsv2hsl2 = _slicedToArray$4(_hsv2hsl, 3),
|
|
516
|
-
hslH = _hsv2hsl2[0],
|
|
517
|
-
hslS = _hsv2hsl2[1],
|
|
518
|
-
hslL = _hsv2hsl2[2];
|
|
519
|
-
|
|
520
|
-
return [hslH, hslS, hslL];
|
|
521
|
-
}
|
|
522
|
-
|
|
523
|
-
function hsl2hwb(hslH, hslS, hslL) {
|
|
524
|
-
var _hsl2hsv = hsl2hsv(hslH, hslS, hslL),
|
|
525
|
-
_hsl2hsv2 = _slicedToArray$4(_hsl2hsv, 3),
|
|
526
|
-
hsvS = _hsl2hsv2[1],
|
|
527
|
-
hsvV = _hsl2hsv2[2];
|
|
528
|
-
|
|
529
|
-
var _hsv2hwb = hsv2hwb(hslH, hsvS, hsvV),
|
|
530
|
-
_hsv2hwb2 = _slicedToArray$4(_hsv2hwb, 3),
|
|
531
|
-
hwbW = _hsv2hwb2[1],
|
|
532
|
-
hwbB = _hsv2hwb2[2];
|
|
533
|
-
|
|
534
|
-
return [hslH, hwbW, hwbB];
|
|
535
|
-
}
|
|
536
|
-
|
|
537
|
-
/* Convert between HSL and Lab
|
|
538
|
-
/* ========================================================================== */
|
|
539
|
-
|
|
540
|
-
function hsl2lab(hslH, hslS, hslL) {
|
|
541
|
-
var _hsl2rgb = hsl2rgb(hslH, hslS, hslL),
|
|
542
|
-
_hsl2rgb2 = _slicedToArray$4(_hsl2rgb, 3),
|
|
543
|
-
rgbR = _hsl2rgb2[0],
|
|
544
|
-
rgbG = _hsl2rgb2[1],
|
|
545
|
-
rgbB = _hsl2rgb2[2];
|
|
546
|
-
|
|
547
|
-
var _rgb2xyz5 = rgb2xyz(rgbR, rgbG, rgbB),
|
|
548
|
-
_rgb2xyz6 = _slicedToArray$4(_rgb2xyz5, 3),
|
|
549
|
-
xyzX = _rgb2xyz6[0],
|
|
550
|
-
xyzY = _rgb2xyz6[1],
|
|
551
|
-
xyzZ = _rgb2xyz6[2];
|
|
552
|
-
|
|
553
|
-
var _xyz2lab5 = xyz2lab(xyzX, xyzY, xyzZ),
|
|
554
|
-
_xyz2lab6 = _slicedToArray$4(_xyz2lab5, 3),
|
|
555
|
-
labL = _xyz2lab6[0],
|
|
556
|
-
labA = _xyz2lab6[1],
|
|
557
|
-
labB = _xyz2lab6[2];
|
|
558
|
-
|
|
559
|
-
return [labL, labA, labB];
|
|
560
|
-
}
|
|
561
|
-
|
|
562
|
-
function lab2hsl(labL, labA, labB, fallbackhue) {
|
|
563
|
-
var _lab2xyz5 = lab2xyz(labL, labA, labB),
|
|
564
|
-
_lab2xyz6 = _slicedToArray$4(_lab2xyz5, 3),
|
|
565
|
-
xyzX = _lab2xyz6[0],
|
|
566
|
-
xyzY = _lab2xyz6[1],
|
|
567
|
-
xyzZ = _lab2xyz6[2];
|
|
568
|
-
|
|
569
|
-
var _xyz2rgb5 = xyz2rgb(xyzX, xyzY, xyzZ),
|
|
570
|
-
_xyz2rgb6 = _slicedToArray$4(_xyz2rgb5, 3),
|
|
571
|
-
rgbR = _xyz2rgb6[0],
|
|
572
|
-
rgbG = _xyz2rgb6[1],
|
|
573
|
-
rgbB = _xyz2rgb6[2];
|
|
574
|
-
|
|
575
|
-
var _rgb2hsl = rgb2hsl(rgbR, rgbG, rgbB, fallbackhue),
|
|
576
|
-
_rgb2hsl2 = _slicedToArray$4(_rgb2hsl, 3),
|
|
577
|
-
hslH = _rgb2hsl2[0],
|
|
578
|
-
hslS = _rgb2hsl2[1],
|
|
579
|
-
hslL = _rgb2hsl2[2];
|
|
580
|
-
|
|
581
|
-
return [hslH, hslS, hslL];
|
|
582
|
-
}
|
|
583
|
-
|
|
584
|
-
/* Convert between HSL and LCH
|
|
585
|
-
/* ========================================================================== */
|
|
586
|
-
|
|
587
|
-
function hsl2lch(hslH, hslS, hslL) {
|
|
588
|
-
var _hsl2rgb3 = hsl2rgb(hslH, hslS, hslL),
|
|
589
|
-
_hsl2rgb4 = _slicedToArray$4(_hsl2rgb3, 3),
|
|
590
|
-
rgbR = _hsl2rgb4[0],
|
|
591
|
-
rgbG = _hsl2rgb4[1],
|
|
592
|
-
rgbB = _hsl2rgb4[2];
|
|
593
|
-
|
|
594
|
-
var _rgb2xyz7 = rgb2xyz(rgbR, rgbG, rgbB),
|
|
595
|
-
_rgb2xyz8 = _slicedToArray$4(_rgb2xyz7, 3),
|
|
596
|
-
xyzX = _rgb2xyz8[0],
|
|
597
|
-
xyzY = _rgb2xyz8[1],
|
|
598
|
-
xyzZ = _rgb2xyz8[2];
|
|
599
|
-
|
|
600
|
-
var _xyz2lab7 = xyz2lab(xyzX, xyzY, xyzZ),
|
|
601
|
-
_xyz2lab8 = _slicedToArray$4(_xyz2lab7, 3),
|
|
602
|
-
labL = _xyz2lab8[0],
|
|
603
|
-
labA = _xyz2lab8[1],
|
|
604
|
-
labB = _xyz2lab8[2];
|
|
605
|
-
|
|
606
|
-
var _lab2lch3 = lab2lch(labL, labA, labB),
|
|
607
|
-
_lab2lch4 = _slicedToArray$4(_lab2lch3, 3),
|
|
608
|
-
lchL = _lab2lch4[0],
|
|
609
|
-
lchC = _lab2lch4[1],
|
|
610
|
-
lchH = _lab2lch4[2];
|
|
611
|
-
|
|
612
|
-
return [lchL, lchC, lchH];
|
|
613
|
-
}
|
|
614
|
-
|
|
615
|
-
function lch2hsl(lchL, lchC, lchH, fallbackhue) {
|
|
616
|
-
var _lch2lab3 = lch2lab(lchL, lchC, lchH),
|
|
617
|
-
_lch2lab4 = _slicedToArray$4(_lch2lab3, 3),
|
|
618
|
-
labL = _lch2lab4[0],
|
|
619
|
-
labA = _lch2lab4[1],
|
|
620
|
-
labB = _lch2lab4[2];
|
|
621
|
-
|
|
622
|
-
var _lab2xyz7 = lab2xyz(labL, labA, labB),
|
|
623
|
-
_lab2xyz8 = _slicedToArray$4(_lab2xyz7, 3),
|
|
624
|
-
xyzX = _lab2xyz8[0],
|
|
625
|
-
xyzY = _lab2xyz8[1],
|
|
626
|
-
xyzZ = _lab2xyz8[2];
|
|
627
|
-
|
|
628
|
-
var _xyz2rgb7 = xyz2rgb(xyzX, xyzY, xyzZ),
|
|
629
|
-
_xyz2rgb8 = _slicedToArray$4(_xyz2rgb7, 3),
|
|
630
|
-
rgbR = _xyz2rgb8[0],
|
|
631
|
-
rgbG = _xyz2rgb8[1],
|
|
632
|
-
rgbB = _xyz2rgb8[2];
|
|
633
|
-
|
|
634
|
-
var _rgb2hsl3 = rgb2hsl(rgbR, rgbG, rgbB, fallbackhue),
|
|
635
|
-
_rgb2hsl4 = _slicedToArray$4(_rgb2hsl3, 3),
|
|
636
|
-
hslH = _rgb2hsl4[0],
|
|
637
|
-
hslS = _rgb2hsl4[1],
|
|
638
|
-
hslL = _rgb2hsl4[2];
|
|
639
|
-
|
|
640
|
-
return [hslH, hslS, hslL];
|
|
641
|
-
}
|
|
642
|
-
|
|
643
|
-
/* Convert between HSL and XYZ
|
|
644
|
-
/* ========================================================================== */
|
|
645
|
-
|
|
646
|
-
function hsl2xyz(hslH, hslS, hslL) {
|
|
647
|
-
var _hsl2rgb5 = hsl2rgb(hslH, hslS, hslL),
|
|
648
|
-
_hsl2rgb6 = _slicedToArray$4(_hsl2rgb5, 3),
|
|
649
|
-
rgbR = _hsl2rgb6[0],
|
|
650
|
-
rgbG = _hsl2rgb6[1],
|
|
651
|
-
rgbB = _hsl2rgb6[2];
|
|
652
|
-
|
|
653
|
-
var _rgb2xyz9 = rgb2xyz(rgbR, rgbG, rgbB),
|
|
654
|
-
_rgb2xyz10 = _slicedToArray$4(_rgb2xyz9, 3),
|
|
655
|
-
xyzX = _rgb2xyz10[0],
|
|
656
|
-
xyzY = _rgb2xyz10[1],
|
|
657
|
-
xyzZ = _rgb2xyz10[2];
|
|
658
|
-
|
|
659
|
-
return [xyzX, xyzY, xyzZ];
|
|
660
|
-
}
|
|
661
|
-
|
|
662
|
-
function xyz2hsl(xyzX, xyzY, xyzZ, fallbackhue) {
|
|
663
|
-
var _xyz2rgb9 = xyz2rgb(xyzX, xyzY, xyzZ),
|
|
664
|
-
_xyz2rgb10 = _slicedToArray$4(_xyz2rgb9, 3),
|
|
665
|
-
rgbR = _xyz2rgb10[0],
|
|
666
|
-
rgbG = _xyz2rgb10[1],
|
|
667
|
-
rgbB = _xyz2rgb10[2];
|
|
668
|
-
|
|
669
|
-
var _rgb2hsl5 = rgb2hsl(rgbR, rgbG, rgbB, fallbackhue),
|
|
670
|
-
_rgb2hsl6 = _slicedToArray$4(_rgb2hsl5, 3),
|
|
671
|
-
hslH = _rgb2hsl6[0],
|
|
672
|
-
hslS = _rgb2hsl6[1],
|
|
673
|
-
hslL = _rgb2hsl6[2];
|
|
674
|
-
|
|
675
|
-
return [hslH, hslS, hslL];
|
|
676
|
-
}
|
|
677
|
-
|
|
678
|
-
/* Convert between HWB and Lab
|
|
679
|
-
/* ========================================================================== */
|
|
680
|
-
|
|
681
|
-
function hwb2lab(hwbH, hwbW, hwbB) {
|
|
682
|
-
var _hwb2rgb = hwb2rgb(hwbH, hwbW, hwbB),
|
|
683
|
-
_hwb2rgb2 = _slicedToArray$4(_hwb2rgb, 3),
|
|
684
|
-
rgbR = _hwb2rgb2[0],
|
|
685
|
-
rgbG = _hwb2rgb2[1],
|
|
686
|
-
rgbB = _hwb2rgb2[2];
|
|
687
|
-
|
|
688
|
-
var _rgb2xyz11 = rgb2xyz(rgbR, rgbG, rgbB),
|
|
689
|
-
_rgb2xyz12 = _slicedToArray$4(_rgb2xyz11, 3),
|
|
690
|
-
xyzX = _rgb2xyz12[0],
|
|
691
|
-
xyzY = _rgb2xyz12[1],
|
|
692
|
-
xyzZ = _rgb2xyz12[2];
|
|
693
|
-
|
|
694
|
-
var _xyz2lab9 = xyz2lab(xyzX, xyzY, xyzZ),
|
|
695
|
-
_xyz2lab10 = _slicedToArray$4(_xyz2lab9, 3),
|
|
696
|
-
labL = _xyz2lab10[0],
|
|
697
|
-
labA = _xyz2lab10[1],
|
|
698
|
-
labB = _xyz2lab10[2];
|
|
699
|
-
|
|
700
|
-
return [labL, labA, labB];
|
|
701
|
-
}
|
|
702
|
-
|
|
703
|
-
function lab2hwb(labL, labA, labB, fallbackhue) {
|
|
704
|
-
var _lab2xyz9 = lab2xyz(labL, labA, labB),
|
|
705
|
-
_lab2xyz10 = _slicedToArray$4(_lab2xyz9, 3),
|
|
706
|
-
xyzX = _lab2xyz10[0],
|
|
707
|
-
xyzY = _lab2xyz10[1],
|
|
708
|
-
xyzZ = _lab2xyz10[2];
|
|
709
|
-
|
|
710
|
-
var _xyz2rgb11 = xyz2rgb(xyzX, xyzY, xyzZ),
|
|
711
|
-
_xyz2rgb12 = _slicedToArray$4(_xyz2rgb11, 3),
|
|
712
|
-
rgbR = _xyz2rgb12[0],
|
|
713
|
-
rgbG = _xyz2rgb12[1],
|
|
714
|
-
rgbB = _xyz2rgb12[2];
|
|
715
|
-
|
|
716
|
-
var _rgb2hwb = rgb2hwb(rgbR, rgbG, rgbB, fallbackhue),
|
|
717
|
-
_rgb2hwb2 = _slicedToArray$4(_rgb2hwb, 3),
|
|
718
|
-
hwbH = _rgb2hwb2[0],
|
|
719
|
-
hwbW = _rgb2hwb2[1],
|
|
720
|
-
hwbB = _rgb2hwb2[2];
|
|
721
|
-
|
|
722
|
-
return [hwbH, hwbW, hwbB];
|
|
723
|
-
}
|
|
724
|
-
|
|
725
|
-
/* Convert between HWB and LCH
|
|
726
|
-
/* ========================================================================== */
|
|
727
|
-
|
|
728
|
-
function hwb2lch(hwbH, hwbW, hwbB) {
|
|
729
|
-
var _hwb2rgb3 = hwb2rgb(hwbH, hwbW, hwbB),
|
|
730
|
-
_hwb2rgb4 = _slicedToArray$4(_hwb2rgb3, 3),
|
|
731
|
-
rgbR = _hwb2rgb4[0],
|
|
732
|
-
rgbG = _hwb2rgb4[1],
|
|
733
|
-
rgbB = _hwb2rgb4[2];
|
|
734
|
-
|
|
735
|
-
var _rgb2xyz13 = rgb2xyz(rgbR, rgbG, rgbB),
|
|
736
|
-
_rgb2xyz14 = _slicedToArray$4(_rgb2xyz13, 3),
|
|
737
|
-
xyzX = _rgb2xyz14[0],
|
|
738
|
-
xyzY = _rgb2xyz14[1],
|
|
739
|
-
xyzZ = _rgb2xyz14[2];
|
|
740
|
-
|
|
741
|
-
var _xyz2lab11 = xyz2lab(xyzX, xyzY, xyzZ),
|
|
742
|
-
_xyz2lab12 = _slicedToArray$4(_xyz2lab11, 3),
|
|
743
|
-
labL = _xyz2lab12[0],
|
|
744
|
-
labA = _xyz2lab12[1],
|
|
745
|
-
labB = _xyz2lab12[2];
|
|
746
|
-
|
|
747
|
-
var _lab2lch5 = lab2lch(labL, labA, labB),
|
|
748
|
-
_lab2lch6 = _slicedToArray$4(_lab2lch5, 3),
|
|
749
|
-
lchL = _lab2lch6[0],
|
|
750
|
-
lchC = _lab2lch6[1],
|
|
751
|
-
lchH = _lab2lch6[2];
|
|
752
|
-
|
|
753
|
-
return [lchL, lchC, lchH];
|
|
754
|
-
}
|
|
755
|
-
|
|
756
|
-
function lch2hwb(lchL, lchC, lchH, fallbackhue) {
|
|
757
|
-
var _lch2lab5 = lch2lab(lchL, lchC, lchH),
|
|
758
|
-
_lch2lab6 = _slicedToArray$4(_lch2lab5, 3),
|
|
759
|
-
labL = _lch2lab6[0],
|
|
760
|
-
labA = _lch2lab6[1],
|
|
761
|
-
labB = _lch2lab6[2];
|
|
762
|
-
|
|
763
|
-
var _lab2xyz11 = lab2xyz(labL, labA, labB),
|
|
764
|
-
_lab2xyz12 = _slicedToArray$4(_lab2xyz11, 3),
|
|
765
|
-
xyzX = _lab2xyz12[0],
|
|
766
|
-
xyzY = _lab2xyz12[1],
|
|
767
|
-
xyzZ = _lab2xyz12[2];
|
|
768
|
-
|
|
769
|
-
var _xyz2rgb13 = xyz2rgb(xyzX, xyzY, xyzZ),
|
|
770
|
-
_xyz2rgb14 = _slicedToArray$4(_xyz2rgb13, 3),
|
|
771
|
-
rgbR = _xyz2rgb14[0],
|
|
772
|
-
rgbG = _xyz2rgb14[1],
|
|
773
|
-
rgbB = _xyz2rgb14[2];
|
|
774
|
-
|
|
775
|
-
var _rgb2hwb3 = rgb2hwb(rgbR, rgbG, rgbB, fallbackhue),
|
|
776
|
-
_rgb2hwb4 = _slicedToArray$4(_rgb2hwb3, 3),
|
|
777
|
-
hwbH = _rgb2hwb4[0],
|
|
778
|
-
hwbW = _rgb2hwb4[1],
|
|
779
|
-
hwbB = _rgb2hwb4[2];
|
|
780
|
-
|
|
781
|
-
return [hwbH, hwbW, hwbB];
|
|
782
|
-
}
|
|
783
|
-
|
|
784
|
-
/* Convert between HWB and XYZ
|
|
785
|
-
/* ========================================================================== */
|
|
786
|
-
|
|
787
|
-
function hwb2xyz(hwbH, hwbW, hwbB) {
|
|
788
|
-
var _hwb2rgb5 = hwb2rgb(hwbH, hwbW, hwbB),
|
|
789
|
-
_hwb2rgb6 = _slicedToArray$4(_hwb2rgb5, 3),
|
|
790
|
-
rgbR = _hwb2rgb6[0],
|
|
791
|
-
rgbG = _hwb2rgb6[1],
|
|
792
|
-
rgbB = _hwb2rgb6[2];
|
|
793
|
-
|
|
794
|
-
var _rgb2xyz15 = rgb2xyz(rgbR, rgbG, rgbB),
|
|
795
|
-
_rgb2xyz16 = _slicedToArray$4(_rgb2xyz15, 3),
|
|
796
|
-
xyzX = _rgb2xyz16[0],
|
|
797
|
-
xyzY = _rgb2xyz16[1],
|
|
798
|
-
xyzZ = _rgb2xyz16[2];
|
|
799
|
-
|
|
800
|
-
return [xyzX, xyzY, xyzZ];
|
|
801
|
-
}
|
|
802
|
-
|
|
803
|
-
function xyz2hwb(xyzX, xyzY, xyzZ, fallbackhue) {
|
|
804
|
-
var _xyz2rgb15 = xyz2rgb(xyzX, xyzY, xyzZ),
|
|
805
|
-
_xyz2rgb16 = _slicedToArray$4(_xyz2rgb15, 3),
|
|
806
|
-
rgbR = _xyz2rgb16[0],
|
|
807
|
-
rgbG = _xyz2rgb16[1],
|
|
808
|
-
rgbB = _xyz2rgb16[2];
|
|
809
|
-
|
|
810
|
-
var _rgb2hwb5 = rgb2hwb(rgbR, rgbG, rgbB, fallbackhue),
|
|
811
|
-
_rgb2hwb6 = _slicedToArray$4(_rgb2hwb5, 3),
|
|
812
|
-
hwbH = _rgb2hwb6[0],
|
|
813
|
-
hwbW = _rgb2hwb6[1],
|
|
814
|
-
hwbB = _rgb2hwb6[2];
|
|
815
|
-
|
|
816
|
-
return [hwbH, hwbW, hwbB];
|
|
817
|
-
}
|
|
818
|
-
|
|
819
|
-
/* Convert between HSV and Lab
|
|
820
|
-
/* ========================================================================== */
|
|
821
|
-
|
|
822
|
-
function hsv2lab(hsvH, hsvS, hsvV) {
|
|
823
|
-
var _hsv2rgb = hsv2rgb(hsvH, hsvS, hsvV),
|
|
824
|
-
_hsv2rgb2 = _slicedToArray$4(_hsv2rgb, 3),
|
|
825
|
-
rgbR = _hsv2rgb2[0],
|
|
826
|
-
rgbG = _hsv2rgb2[1],
|
|
827
|
-
rgbB = _hsv2rgb2[2];
|
|
828
|
-
|
|
829
|
-
var _rgb2xyz17 = rgb2xyz(rgbR, rgbG, rgbB),
|
|
830
|
-
_rgb2xyz18 = _slicedToArray$4(_rgb2xyz17, 3),
|
|
831
|
-
xyzX = _rgb2xyz18[0],
|
|
832
|
-
xyzY = _rgb2xyz18[1],
|
|
833
|
-
xyzZ = _rgb2xyz18[2];
|
|
834
|
-
|
|
835
|
-
var _xyz2lab13 = xyz2lab(xyzX, xyzY, xyzZ),
|
|
836
|
-
_xyz2lab14 = _slicedToArray$4(_xyz2lab13, 3),
|
|
837
|
-
labL = _xyz2lab14[0],
|
|
838
|
-
labA = _xyz2lab14[1],
|
|
839
|
-
labB = _xyz2lab14[2];
|
|
840
|
-
|
|
841
|
-
return [labL, labA, labB];
|
|
842
|
-
}
|
|
843
|
-
|
|
844
|
-
function lab2hsv(labL, labA, labB, fallbackhue) {
|
|
845
|
-
var _lab2xyz13 = lab2xyz(labL, labA, labB),
|
|
846
|
-
_lab2xyz14 = _slicedToArray$4(_lab2xyz13, 3),
|
|
847
|
-
xyzX = _lab2xyz14[0],
|
|
848
|
-
xyzY = _lab2xyz14[1],
|
|
849
|
-
xyzZ = _lab2xyz14[2];
|
|
850
|
-
|
|
851
|
-
var _xyz2rgb17 = xyz2rgb(xyzX, xyzY, xyzZ),
|
|
852
|
-
_xyz2rgb18 = _slicedToArray$4(_xyz2rgb17, 3),
|
|
853
|
-
rgbR = _xyz2rgb18[0],
|
|
854
|
-
rgbG = _xyz2rgb18[1],
|
|
855
|
-
rgbB = _xyz2rgb18[2];
|
|
856
|
-
|
|
857
|
-
var _rgb2hsv = rgb2hsv(rgbR, rgbG, rgbB, fallbackhue),
|
|
858
|
-
_rgb2hsv2 = _slicedToArray$4(_rgb2hsv, 3),
|
|
859
|
-
hsvH = _rgb2hsv2[0],
|
|
860
|
-
hsvS = _rgb2hsv2[1],
|
|
861
|
-
hsvV = _rgb2hsv2[2];
|
|
862
|
-
|
|
863
|
-
return [hsvH, hsvS, hsvV];
|
|
864
|
-
}
|
|
865
|
-
|
|
866
|
-
/* Convert between HSV and LCH
|
|
867
|
-
/* ========================================================================== */
|
|
868
|
-
|
|
869
|
-
function hsv2lch(hsvH, hsvS, hsvV) {
|
|
870
|
-
var _hsv2rgb3 = hsv2rgb(hsvH, hsvS, hsvV),
|
|
871
|
-
_hsv2rgb4 = _slicedToArray$4(_hsv2rgb3, 3),
|
|
872
|
-
rgbR = _hsv2rgb4[0],
|
|
873
|
-
rgbG = _hsv2rgb4[1],
|
|
874
|
-
rgbB = _hsv2rgb4[2];
|
|
875
|
-
|
|
876
|
-
var _rgb2xyz19 = rgb2xyz(rgbR, rgbG, rgbB),
|
|
877
|
-
_rgb2xyz20 = _slicedToArray$4(_rgb2xyz19, 3),
|
|
878
|
-
xyzX = _rgb2xyz20[0],
|
|
879
|
-
xyzY = _rgb2xyz20[1],
|
|
880
|
-
xyzZ = _rgb2xyz20[2];
|
|
881
|
-
|
|
882
|
-
var _xyz2lab15 = xyz2lab(xyzX, xyzY, xyzZ),
|
|
883
|
-
_xyz2lab16 = _slicedToArray$4(_xyz2lab15, 3),
|
|
884
|
-
labL = _xyz2lab16[0],
|
|
885
|
-
labA = _xyz2lab16[1],
|
|
886
|
-
labB = _xyz2lab16[2];
|
|
887
|
-
|
|
888
|
-
var _lab2lch7 = lab2lch(labL, labA, labB),
|
|
889
|
-
_lab2lch8 = _slicedToArray$4(_lab2lch7, 3),
|
|
890
|
-
lchL = _lab2lch8[0],
|
|
891
|
-
lchC = _lab2lch8[1],
|
|
892
|
-
lchH = _lab2lch8[2];
|
|
893
|
-
|
|
894
|
-
return [lchL, lchC, lchH];
|
|
895
|
-
}
|
|
896
|
-
|
|
897
|
-
function lch2hsv(lchL, lchC, lchH, fallbackhue) {
|
|
898
|
-
var _lch2lab7 = lch2lab(lchL, lchC, lchH),
|
|
899
|
-
_lch2lab8 = _slicedToArray$4(_lch2lab7, 3),
|
|
900
|
-
labL = _lch2lab8[0],
|
|
901
|
-
labA = _lch2lab8[1],
|
|
902
|
-
labB = _lch2lab8[2];
|
|
903
|
-
|
|
904
|
-
var _lab2xyz15 = lab2xyz(labL, labA, labB),
|
|
905
|
-
_lab2xyz16 = _slicedToArray$4(_lab2xyz15, 3),
|
|
906
|
-
xyzX = _lab2xyz16[0],
|
|
907
|
-
xyzY = _lab2xyz16[1],
|
|
908
|
-
xyzZ = _lab2xyz16[2];
|
|
909
|
-
|
|
910
|
-
var _xyz2rgb19 = xyz2rgb(xyzX, xyzY, xyzZ),
|
|
911
|
-
_xyz2rgb20 = _slicedToArray$4(_xyz2rgb19, 3),
|
|
912
|
-
rgbR = _xyz2rgb20[0],
|
|
913
|
-
rgbG = _xyz2rgb20[1],
|
|
914
|
-
rgbB = _xyz2rgb20[2];
|
|
915
|
-
|
|
916
|
-
var _rgb2hsv3 = rgb2hsv(rgbR, rgbG, rgbB, fallbackhue),
|
|
917
|
-
_rgb2hsv4 = _slicedToArray$4(_rgb2hsv3, 3),
|
|
918
|
-
hsvH = _rgb2hsv4[0],
|
|
919
|
-
hsvS = _rgb2hsv4[1],
|
|
920
|
-
hsvV = _rgb2hsv4[2];
|
|
921
|
-
|
|
922
|
-
return [hsvH, hsvS, hsvV];
|
|
923
|
-
}
|
|
924
|
-
|
|
925
|
-
/* Convert between HSV and XYZ
|
|
926
|
-
/* ========================================================================== */
|
|
927
|
-
|
|
928
|
-
function hsv2xyz(hsvH, hsvS, hsvV) {
|
|
929
|
-
var _hsv2rgb5 = hsv2rgb(hsvH, hsvS, hsvV),
|
|
930
|
-
_hsv2rgb6 = _slicedToArray$4(_hsv2rgb5, 3),
|
|
931
|
-
rgbR = _hsv2rgb6[0],
|
|
932
|
-
rgbG = _hsv2rgb6[1],
|
|
933
|
-
rgbB = _hsv2rgb6[2];
|
|
934
|
-
|
|
935
|
-
var _rgb2xyz21 = rgb2xyz(rgbR, rgbG, rgbB),
|
|
936
|
-
_rgb2xyz22 = _slicedToArray$4(_rgb2xyz21, 3),
|
|
937
|
-
xyzX = _rgb2xyz22[0],
|
|
938
|
-
xyzY = _rgb2xyz22[1],
|
|
939
|
-
xyzZ = _rgb2xyz22[2];
|
|
940
|
-
|
|
941
|
-
return [xyzX, xyzY, xyzZ];
|
|
942
|
-
}
|
|
943
|
-
|
|
944
|
-
function xyz2hsv(xyzX, xyzY, xyzZ, fallbackhue) {
|
|
945
|
-
var _xyz2rgb21 = xyz2rgb(xyzX, xyzY, xyzZ),
|
|
946
|
-
_xyz2rgb22 = _slicedToArray$4(_xyz2rgb21, 3),
|
|
947
|
-
rgbR = _xyz2rgb22[0],
|
|
948
|
-
rgbG = _xyz2rgb22[1],
|
|
949
|
-
rgbB = _xyz2rgb22[2];
|
|
950
|
-
|
|
951
|
-
var _rgb2hsv5 = rgb2hsv(rgbR, rgbG, rgbB, fallbackhue),
|
|
952
|
-
_rgb2hsv6 = _slicedToArray$4(_rgb2hsv5, 3),
|
|
953
|
-
hsvH = _rgb2hsv6[0],
|
|
954
|
-
hsvS = _rgb2hsv6[1],
|
|
955
|
-
hsvV = _rgb2hsv6[2];
|
|
956
|
-
|
|
957
|
-
return [hsvH, hsvS, hsvV];
|
|
958
|
-
}
|
|
959
|
-
|
|
960
|
-
/* Convert between XYZ and LCH
|
|
961
|
-
/* ========================================================================== */
|
|
962
|
-
|
|
963
|
-
function xyz2lch(xyzX, xyzY, xyzZ) {
|
|
964
|
-
var _xyz2lab17 = xyz2lab(xyzX, xyzY, xyzZ),
|
|
965
|
-
_xyz2lab18 = _slicedToArray$4(_xyz2lab17, 3),
|
|
966
|
-
labL = _xyz2lab18[0],
|
|
967
|
-
labA = _xyz2lab18[1],
|
|
968
|
-
labB = _xyz2lab18[2];
|
|
969
|
-
|
|
970
|
-
var _lab2lch9 = lab2lch(labL, labA, labB),
|
|
971
|
-
_lab2lch10 = _slicedToArray$4(_lab2lch9, 3),
|
|
972
|
-
lchL = _lab2lch10[0],
|
|
973
|
-
lchC = _lab2lch10[1],
|
|
974
|
-
lchH = _lab2lch10[2];
|
|
975
|
-
|
|
976
|
-
return [lchL, lchC, lchH];
|
|
977
|
-
}
|
|
978
|
-
|
|
979
|
-
function lch2xyz(lchL, lchC, lchH) {
|
|
980
|
-
var _lch2lab9 = lch2lab(lchL, lchC, lchH),
|
|
981
|
-
_lch2lab10 = _slicedToArray$4(_lch2lab9, 3),
|
|
982
|
-
labL = _lch2lab10[0],
|
|
983
|
-
labA = _lch2lab10[1],
|
|
984
|
-
labB = _lch2lab10[2];
|
|
985
|
-
|
|
986
|
-
var _lab2xyz17 = lab2xyz(labL, labA, labB),
|
|
987
|
-
_lab2xyz18 = _slicedToArray$4(_lab2xyz17, 3),
|
|
988
|
-
xyzX = _lab2xyz18[0],
|
|
989
|
-
xyzY = _lab2xyz18[1],
|
|
990
|
-
xyzZ = _lab2xyz18[2];
|
|
991
|
-
|
|
992
|
-
return [xyzX, xyzY, xyzZ];
|
|
993
|
-
}
|
|
994
|
-
|
|
995
|
-
var index = {
|
|
996
|
-
rgb2hsl,
|
|
997
|
-
rgb2hwb,
|
|
998
|
-
rgb2lab,
|
|
999
|
-
rgb2lch,
|
|
1000
|
-
rgb2hsv,
|
|
1001
|
-
rgb2xyz,
|
|
1002
|
-
|
|
1003
|
-
hsl2rgb,
|
|
1004
|
-
hsl2hwb,
|
|
1005
|
-
hsl2lab,
|
|
1006
|
-
hsl2lch,
|
|
1007
|
-
hsl2hsv,
|
|
1008
|
-
hsl2xyz,
|
|
1009
|
-
|
|
1010
|
-
hwb2rgb,
|
|
1011
|
-
hwb2hsl,
|
|
1012
|
-
hwb2lab,
|
|
1013
|
-
hwb2lch,
|
|
1014
|
-
hwb2hsv,
|
|
1015
|
-
hwb2xyz,
|
|
1016
|
-
|
|
1017
|
-
lab2rgb,
|
|
1018
|
-
lab2hsl,
|
|
1019
|
-
lab2hwb,
|
|
1020
|
-
lab2lch,
|
|
1021
|
-
lab2hsv,
|
|
1022
|
-
lab2xyz,
|
|
1023
|
-
|
|
1024
|
-
lch2rgb,
|
|
1025
|
-
lch2hsl,
|
|
1026
|
-
lch2hwb,
|
|
1027
|
-
lch2lab,
|
|
1028
|
-
lch2hsv,
|
|
1029
|
-
lch2xyz,
|
|
1030
|
-
|
|
1031
|
-
hsv2rgb,
|
|
1032
|
-
hsv2hsl,
|
|
1033
|
-
hsv2hwb,
|
|
1034
|
-
hsv2lab,
|
|
1035
|
-
hsv2lch,
|
|
1036
|
-
hsv2xyz,
|
|
1037
|
-
|
|
1038
|
-
xyz2rgb,
|
|
1039
|
-
xyz2hsl,
|
|
1040
|
-
xyz2hwb,
|
|
1041
|
-
xyz2lab,
|
|
1042
|
-
xyz2lch,
|
|
1043
|
-
xyz2hsv,
|
|
1044
|
-
|
|
1045
|
-
rgb2hue
|
|
1046
|
-
};
|
|
1047
|
-
|
|
1048
|
-
exports.rgb2hsl = rgb2hsl;
|
|
1049
|
-
exports.rgb2hwb = rgb2hwb;
|
|
1050
|
-
exports.rgb2lab = rgb2lab;
|
|
1051
|
-
exports.rgb2lch = rgb2lch;
|
|
1052
|
-
exports.rgb2hsv = rgb2hsv;
|
|
1053
|
-
exports.rgb2xyz = rgb2xyz;
|
|
1054
|
-
exports.hsl2rgb = hsl2rgb;
|
|
1055
|
-
exports.hsl2hwb = hsl2hwb;
|
|
1056
|
-
exports.hsl2lab = hsl2lab;
|
|
1057
|
-
exports.hsl2lch = hsl2lch;
|
|
1058
|
-
exports.hsl2hsv = hsl2hsv;
|
|
1059
|
-
exports.hsl2xyz = hsl2xyz;
|
|
1060
|
-
exports.hwb2rgb = hwb2rgb;
|
|
1061
|
-
exports.hwb2hsl = hwb2hsl;
|
|
1062
|
-
exports.hwb2lab = hwb2lab;
|
|
1063
|
-
exports.hwb2lch = hwb2lch;
|
|
1064
|
-
exports.hwb2hsv = hwb2hsv;
|
|
1065
|
-
exports.hwb2xyz = hwb2xyz;
|
|
1066
|
-
exports.lab2rgb = lab2rgb;
|
|
1067
|
-
exports.lab2hsl = lab2hsl;
|
|
1068
|
-
exports.lab2hwb = lab2hwb;
|
|
1069
|
-
exports.lab2lch = lab2lch;
|
|
1070
|
-
exports.lab2hsv = lab2hsv;
|
|
1071
|
-
exports.lab2xyz = lab2xyz;
|
|
1072
|
-
exports.lch2rgb = lch2rgb;
|
|
1073
|
-
exports.lch2hsl = lch2hsl;
|
|
1074
|
-
exports.lch2hwb = lch2hwb;
|
|
1075
|
-
exports.lch2lab = lch2lab;
|
|
1076
|
-
exports.lch2hsv = lch2hsv;
|
|
1077
|
-
exports.lch2xyz = lch2xyz;
|
|
1078
|
-
exports.hsv2rgb = hsv2rgb;
|
|
1079
|
-
exports.hsv2hsl = hsv2hsl;
|
|
1080
|
-
exports.hsv2hwb = hsv2hwb;
|
|
1081
|
-
exports.hsv2lab = hsv2lab;
|
|
1082
|
-
exports.hsv2lch = hsv2lch;
|
|
1083
|
-
exports.hsv2xyz = hsv2xyz;
|
|
1084
|
-
exports.xyz2rgb = xyz2rgb;
|
|
1085
|
-
exports.xyz2hsl = xyz2hsl;
|
|
1086
|
-
exports.xyz2hwb = xyz2hwb;
|
|
1087
|
-
exports.xyz2lab = xyz2lab;
|
|
1088
|
-
exports.xyz2lch = xyz2lch;
|
|
1089
|
-
exports.xyz2hsv = xyz2hsv;
|
|
1090
|
-
exports.rgb2hue = rgb2hue;
|
|
1091
|
-
exports['default'] = index;
|