@livechart/sharp-vibrant 0.2.1 → 0.2.2

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.
Files changed (81) hide show
  1. package/lib/builder.js +10 -5
  2. package/lib/builder.js.map +1 -1
  3. package/lib/color.js +8 -4
  4. package/lib/color.js.map +1 -1
  5. package/lib/filter/default.js +4 -1
  6. package/lib/filter/default.js.map +1 -1
  7. package/lib/filter/index.js +10 -2
  8. package/lib/filter/index.js.map +1 -1
  9. package/lib/generator/default.js +15 -13
  10. package/lib/generator/default.js.map +1 -1
  11. package/lib/generator/index.js +8 -2
  12. package/lib/generator/index.js.map +1 -1
  13. package/lib/image/base.js +3 -1
  14. package/lib/image/base.js.map +1 -1
  15. package/lib/image/sharp.js +35 -41
  16. package/lib/image/sharp.js.map +1 -1
  17. package/lib/index.js +9 -4
  18. package/lib/index.js.map +1 -1
  19. package/lib/quantizer/index.js +7 -2
  20. package/lib/quantizer/index.js.map +1 -1
  21. package/lib/quantizer/mmcq.js +13 -8
  22. package/lib/quantizer/mmcq.js.map +1 -1
  23. package/lib/quantizer/pqueue.js +3 -1
  24. package/lib/quantizer/pqueue.js.map +1 -1
  25. package/lib/quantizer/vbox.js +18 -16
  26. package/lib/quantizer/vbox.js.map +1 -1
  27. package/lib/typing.js +2 -1
  28. package/lib/util.js +44 -28
  29. package/lib/util.js.map +1 -1
  30. package/lib/vibrant.js +54 -16
  31. package/lib/vibrant.js.map +1 -1
  32. package/package.json +1 -1
  33. package/tsconfig.json +5 -15
  34. package/lib/src/builder.d.ts +0 -17
  35. package/lib/src/builder.js +0 -80
  36. package/lib/src/builder.js.map +0 -1
  37. package/lib/src/color.d.ts +0 -30
  38. package/lib/src/color.js +0 -81
  39. package/lib/src/color.js.map +0 -1
  40. package/lib/src/filter/default.d.ts +0 -1
  41. package/lib/src/filter/default.js +0 -7
  42. package/lib/src/filter/default.js.map +0 -1
  43. package/lib/src/filter/index.d.ts +0 -3
  44. package/lib/src/filter/index.js +0 -24
  45. package/lib/src/filter/index.js.map +0 -1
  46. package/lib/src/generator/default.d.ts +0 -20
  47. package/lib/src/generator/default.js +0 -143
  48. package/lib/src/generator/default.js.map +0 -1
  49. package/lib/src/generator/index.d.ts +0 -3
  50. package/lib/src/generator/index.js +0 -9
  51. package/lib/src/generator/index.js.map +0 -1
  52. package/lib/src/image/base.d.ts +0 -11
  53. package/lib/src/image/base.js +0 -29
  54. package/lib/src/image/base.js.map +0 -1
  55. package/lib/src/image/sharp.d.ts +0 -11
  56. package/lib/src/image/sharp.js +0 -81
  57. package/lib/src/image/sharp.js.map +0 -1
  58. package/lib/src/index.d.ts +0 -2
  59. package/lib/src/index.js +0 -9
  60. package/lib/src/index.js.map +0 -1
  61. package/lib/src/quantizer/index.d.ts +0 -2
  62. package/lib/src/quantizer/index.js +0 -8
  63. package/lib/src/quantizer/index.js.map +0 -1
  64. package/lib/src/quantizer/mmcq.d.ts +0 -3
  65. package/lib/src/quantizer/mmcq.js +0 -57
  66. package/lib/src/quantizer/mmcq.js.map +0 -1
  67. package/lib/src/quantizer/pqueue.d.ts +0 -14
  68. package/lib/src/quantizer/pqueue.js +0 -51
  69. package/lib/src/quantizer/pqueue.js.map +0 -1
  70. package/lib/src/quantizer/vbox.d.ts +0 -26
  71. package/lib/src/quantizer/vbox.js +0 -253
  72. package/lib/src/quantizer/vbox.js.map +0 -1
  73. package/lib/src/typing.d.ts +0 -57
  74. package/lib/src/typing.js +0 -3
  75. package/lib/src/typing.js.map +0 -1
  76. package/lib/src/util.d.ts +0 -31
  77. package/lib/src/util.js +0 -201
  78. package/lib/src/util.js.map +0 -1
  79. package/lib/src/vibrant.d.ts +0 -21
  80. package/lib/src/vibrant.js +0 -117
  81. package/lib/src/vibrant.js.map +0 -1
@@ -1,51 +0,0 @@
1
- "use strict";
2
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
3
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
4
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
5
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
6
- };
7
- var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
8
- if (kind === "m") throw new TypeError("Private method is not writable");
9
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
10
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
11
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
12
- };
13
- var _PQueue_sorted, _PQueue_comparator;
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- class PQueue {
16
- sort() {
17
- if (!__classPrivateFieldGet(this, _PQueue_sorted, "f")) {
18
- this.contents.sort(__classPrivateFieldGet(this, _PQueue_comparator, "f"));
19
- __classPrivateFieldSet(this, _PQueue_sorted, true, "f");
20
- }
21
- }
22
- constructor(comparator) {
23
- _PQueue_sorted.set(this, void 0);
24
- _PQueue_comparator.set(this, void 0);
25
- __classPrivateFieldSet(this, _PQueue_comparator, comparator, "f");
26
- this.contents = [];
27
- __classPrivateFieldSet(this, _PQueue_sorted, false, "f");
28
- }
29
- push(item) {
30
- this.contents.push(item);
31
- __classPrivateFieldSet(this, _PQueue_sorted, false, "f");
32
- }
33
- peek(index) {
34
- this.sort();
35
- return this.contents[typeof index === 'number' ? index : this.contents.length - 1];
36
- }
37
- pop() {
38
- this.sort();
39
- return this.contents.pop();
40
- }
41
- get size() {
42
- return this.contents.length;
43
- }
44
- map(mapper) {
45
- this.sort();
46
- return this.contents.map(mapper);
47
- }
48
- }
49
- _PQueue_sorted = new WeakMap(), _PQueue_comparator = new WeakMap();
50
- exports.default = PQueue;
51
- //# sourceMappingURL=pqueue.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pqueue.js","sourceRoot":"","sources":["../../../src/quantizer/pqueue.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAIA,MAAqB,MAAM;IAOjB,IAAI;QACV,IAAI,CAAC,uBAAA,IAAI,sBAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,uBAAA,IAAI,0BAAY,CAAC,CAAC;YACrC,uBAAA,IAAI,kBAAW,IAAI,MAAA,CAAC;QACtB,CAAC;IACH,CAAC;IAED,YAAY,UAA+B;QAX3C,iCAAiB;QAEjB,qCAAiC;QAU/B,uBAAA,IAAI,sBAAe,UAAU,MAAA,CAAC;QAC9B,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,uBAAA,IAAI,kBAAW,KAAK,MAAA,CAAC;IACvB,CAAC;IAED,IAAI,CAAC,IAAO;QACV,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,uBAAA,IAAI,kBAAW,KAAK,MAAA,CAAC;IACvB,CAAC;IAED,IAAI,CAAC,KAAc;QACjB,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACrF,CAAC;IAED,GAAG;QACD,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAG,CAAC;IAC9B,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED,GAAG,CAAI,MAAuC;QAC5C,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;CACF;;kBA3CoB,MAAM"}
@@ -1,26 +0,0 @@
1
- import type { Vec3 } from '../color';
2
- import type { Pixels } from '../typing';
3
- export interface Dimension {
4
- r1: number;
5
- r2: number;
6
- g1: number;
7
- g2: number;
8
- b1: number;
9
- b2: number;
10
- [d: string]: number;
11
- }
12
- export default class VBox {
13
- #private;
14
- static build(pixels: Pixels): VBox;
15
- dimension: Dimension;
16
- hist: Uint32Array;
17
- constructor(r1: number, r2: number, g1: number, g2: number, b1: number, b2: number, hist: Uint32Array);
18
- invalidate(): void;
19
- get volume(): number;
20
- get count(): number;
21
- clone(): VBox;
22
- get avg(): Vec3;
23
- contains(rgb: Vec3): boolean;
24
- split(): VBox[];
25
- private doCut;
26
- }
@@ -1,253 +0,0 @@
1
- "use strict";
2
- var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
3
- if (kind === "m") throw new TypeError("Private method is not writable");
4
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
5
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
6
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
7
- };
8
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
9
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
10
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
11
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
- };
13
- var _VBox_volume, _VBox_avg, _VBox_count;
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- const util_1 = require("../util");
16
- class VBox {
17
- static build(pixels) {
18
- const hn = 1 << (3 * util_1.SIGBITS);
19
- const hist = new Uint32Array(hn);
20
- let rmax = 0;
21
- let rmin = Number.MAX_VALUE;
22
- let gmax = 0;
23
- let gmin = Number.MAX_VALUE;
24
- let bmax = 0;
25
- let bmin = Number.MAX_VALUE;
26
- let r;
27
- let g;
28
- let b;
29
- let a;
30
- const n = pixels.length / 4;
31
- let i = 0;
32
- while (i < n) {
33
- const offset = i * 4;
34
- i += 1;
35
- r = pixels[offset + 0];
36
- g = pixels[offset + 1];
37
- b = pixels[offset + 2];
38
- a = pixels[offset + 3];
39
- // Ignored pixels' alpha is marked as 0 in filtering stage
40
- if (a === 0)
41
- continue;
42
- r >>= util_1.RSHIFT;
43
- g >>= util_1.RSHIFT;
44
- b >>= util_1.RSHIFT;
45
- const index = (0, util_1.getColorIndex)(r, g, b);
46
- hist[index] += 1;
47
- if (r > rmax)
48
- rmax = r;
49
- if (r < rmin)
50
- rmin = r;
51
- if (g > gmax)
52
- gmax = g;
53
- if (g < gmin)
54
- gmin = g;
55
- if (b > bmax)
56
- bmax = b;
57
- if (b < bmin)
58
- bmin = b;
59
- }
60
- return new VBox(rmin, rmax, gmin, gmax, bmin, bmax, hist);
61
- }
62
- constructor(r1, r2, g1, g2, b1, b2, hist) {
63
- _VBox_volume.set(this, -1);
64
- _VBox_avg.set(this, null);
65
- _VBox_count.set(this, -1);
66
- this.dimension = {
67
- r1, r2, g1, g2, b1, b2,
68
- };
69
- this.hist = hist;
70
- }
71
- invalidate() {
72
- __classPrivateFieldSet(this, _VBox_volume, -1, "f");
73
- __classPrivateFieldSet(this, _VBox_count, -1, "f");
74
- __classPrivateFieldSet(this, _VBox_avg, null, "f");
75
- }
76
- get volume() {
77
- if (__classPrivateFieldGet(this, _VBox_volume, "f") < 0) {
78
- const { r1, r2, g1, g2, b1, b2, } = this.dimension;
79
- __classPrivateFieldSet(this, _VBox_volume, (r2 - r1 + 1) * (g2 - g1 + 1) * (b2 - b1 + 1), "f");
80
- }
81
- return __classPrivateFieldGet(this, _VBox_volume, "f");
82
- }
83
- get count() {
84
- if (__classPrivateFieldGet(this, _VBox_count, "f") < 0) {
85
- const { hist } = this;
86
- const { r1, r2, g1, g2, b1, b2, } = this.dimension;
87
- let c = 0;
88
- for (let r = r1; r <= r2; r += 1) {
89
- for (let g = g1; g <= g2; g += 1) {
90
- for (let b = b1; b <= b2; b += 1) {
91
- const index = (0, util_1.getColorIndex)(r, g, b);
92
- c += hist[index];
93
- }
94
- }
95
- }
96
- __classPrivateFieldSet(this, _VBox_count, c, "f");
97
- }
98
- return __classPrivateFieldGet(this, _VBox_count, "f");
99
- }
100
- clone() {
101
- const { hist } = this;
102
- const { r1, r2, g1, g2, b1, b2, } = this.dimension;
103
- return new VBox(r1, r2, g1, g2, b1, b2, hist);
104
- }
105
- get avg() {
106
- if (!__classPrivateFieldGet(this, _VBox_avg, "f")) {
107
- const { hist } = this;
108
- const { r1, r2, g1, g2, b1, b2, } = this.dimension;
109
- let ntot = 0;
110
- const mult = 1 << (8 - util_1.SIGBITS);
111
- let rsum = 0;
112
- let gsum = 0;
113
- let bsum = 0;
114
- for (let r = r1; r <= r2; r += 1) {
115
- for (let g = g1; g <= g2; g += 1) {
116
- for (let b = b1; b <= b2; b += 1) {
117
- const index = (0, util_1.getColorIndex)(r, g, b);
118
- const h = hist[index];
119
- ntot += h;
120
- rsum += (h * (r + 0.5) * mult);
121
- gsum += (h * (g + 0.5) * mult);
122
- bsum += (h * (b + 0.5) * mult);
123
- }
124
- }
125
- }
126
- if (ntot) {
127
- __classPrivateFieldSet(this, _VBox_avg, [
128
- ~~(rsum / ntot),
129
- ~~(gsum / ntot),
130
- ~~(bsum / ntot),
131
- ], "f");
132
- }
133
- else {
134
- __classPrivateFieldSet(this, _VBox_avg, [
135
- ~~((mult * (r1 + r2 + 1)) / 2),
136
- ~~((mult * (g1 + g2 + 1)) / 2),
137
- ~~((mult * (b1 + b2 + 1)) / 2),
138
- ], "f");
139
- }
140
- }
141
- return __classPrivateFieldGet(this, _VBox_avg, "f");
142
- }
143
- contains(rgb) {
144
- let [r, g, b] = rgb;
145
- const { r1, r2, g1, g2, b1, b2, } = this.dimension;
146
- r >>= util_1.RSHIFT;
147
- g >>= util_1.RSHIFT;
148
- b >>= util_1.RSHIFT;
149
- return r >= r1 && r <= r2
150
- && g >= g1 && g <= g2
151
- && b >= b1 && b <= b2;
152
- }
153
- split() {
154
- const { hist } = this;
155
- const { r1, r2, g1, g2, b1, b2, } = this.dimension;
156
- const { count } = this;
157
- if (!count)
158
- return [];
159
- if (count === 1)
160
- return [this.clone()];
161
- const rw = r2 - r1 + 1;
162
- const gw = g2 - g1 + 1;
163
- const bw = b2 - b1 + 1;
164
- const maxw = Math.max(rw, gw, bw);
165
- let accSum = null;
166
- let sum = 0;
167
- let total = 0;
168
- let maxd = null;
169
- if (maxw === rw) {
170
- maxd = 'r';
171
- accSum = new Uint32Array(r2 + 1);
172
- for (let r = r1; r <= r2; r += 1) {
173
- sum = 0;
174
- for (let g = g1; g <= g2; g += 1) {
175
- for (let b = b1; b <= b2; b += 1) {
176
- const index = (0, util_1.getColorIndex)(r, g, b);
177
- sum += hist[index];
178
- }
179
- }
180
- total += sum;
181
- accSum[r] = total;
182
- }
183
- }
184
- else if (maxw === gw) {
185
- maxd = 'g';
186
- accSum = new Uint32Array(g2 + 1);
187
- for (let g = g1; g <= g2; g += 1) {
188
- sum = 0;
189
- for (let r = r1; r <= r2; r += 1) {
190
- for (let b = b1; b <= b2; b += 1) {
191
- const index = (0, util_1.getColorIndex)(r, g, b);
192
- sum += hist[index];
193
- }
194
- }
195
- total += sum;
196
- accSum[g] = total;
197
- }
198
- }
199
- else {
200
- maxd = 'b';
201
- accSum = new Uint32Array(b2 + 1);
202
- for (let b = b1; b <= b2; b += 1) {
203
- sum = 0;
204
- for (let r = r1; r <= r2; r += 1) {
205
- for (let g = g1; g <= g2; g += 1) {
206
- const index = (0, util_1.getColorIndex)(r, g, b);
207
- sum += hist[index];
208
- }
209
- }
210
- total += sum;
211
- accSum[b] = total;
212
- }
213
- }
214
- let splitPoint = -1;
215
- const reverseSum = new Uint32Array(accSum.length);
216
- for (let i = 0; i < accSum.length; i += 1) {
217
- const d = accSum[i];
218
- if (splitPoint < 0 && d > total / 2)
219
- splitPoint = i;
220
- reverseSum[i] = total - d;
221
- }
222
- return this.doCut(maxd, splitPoint, accSum, reverseSum);
223
- }
224
- doCut(d, splitPoint, accSum, reverseSum) {
225
- const dim1 = `${d}1`;
226
- const dim2 = `${d}2`;
227
- const d1 = this.dimension[dim1];
228
- let d2 = this.dimension[dim2];
229
- const vbox1 = this.clone();
230
- const vbox2 = this.clone();
231
- const left = splitPoint - d1;
232
- const right = d2 - splitPoint;
233
- if (left <= right) {
234
- d2 = Math.min(d2 - 1, ~~(splitPoint + right / 2));
235
- d2 = Math.max(0, d2);
236
- }
237
- else {
238
- d2 = Math.max(d1, ~~(splitPoint - 1 - left / 2));
239
- d2 = Math.min(this.dimension[dim2], d2);
240
- }
241
- while (!accSum[d2])
242
- d2 += 1;
243
- let c2 = reverseSum[d2];
244
- while (!c2 && accSum[d2 - 1])
245
- c2 = reverseSum[d2 -= 1];
246
- vbox1.dimension[dim2] = d2;
247
- vbox2.dimension[dim1] = d2 + 1;
248
- return [vbox1, vbox2];
249
- }
250
- }
251
- _VBox_volume = new WeakMap(), _VBox_avg = new WeakMap(), _VBox_count = new WeakMap();
252
- exports.default = VBox;
253
- //# sourceMappingURL=vbox.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vbox.js","sourceRoot":"","sources":["../../../src/quantizer/vbox.ts"],"names":[],"mappings":"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"}
@@ -1,57 +0,0 @@
1
- import type { Palette, Swatch } from './color';
2
- import type Builder from './builder';
3
- import { type Sharp } from 'sharp';
4
- export interface VibrantStatic {
5
- from(src: ImageSource): Builder;
6
- }
7
- export interface Callback<T> {
8
- (err?: Error, result?: T): void;
9
- }
10
- export type ImageCallback = Callback<Image>;
11
- export type ImageSource = string | Buffer | Sharp;
12
- export interface ImageDimensions {
13
- readonly width: number;
14
- readonly height: number;
15
- }
16
- export interface ImagePixelInfo {
17
- readonly pixelCount: number;
18
- }
19
- export type Pixels = Uint8ClampedArray | Buffer;
20
- export interface ImageData extends ImageDimensions {
21
- data: Pixels;
22
- }
23
- export interface PaletteResult extends ImagePixelInfo {
24
- readonly imageDimensions: ImageDimensions;
25
- readonly palette: Palette;
26
- }
27
- export interface Image extends ImageDimensions, ImagePixelInfo {
28
- readonly imageData: ImageData;
29
- load(image: ImageSource, opts: ComputedOptions): Promise<Image>;
30
- applyFilter(filter: Filter): Promise<ImageData>;
31
- cleanup(): void;
32
- }
33
- export type Resolvable<T> = T | Promise<T>;
34
- export interface ImageClass {
35
- new (): Image;
36
- }
37
- export interface Filter {
38
- (red: number, green: number, blue: number, alpha: number): boolean;
39
- }
40
- export interface Quantizer {
41
- (pixels: Pixels, opts: ComputedOptions): Resolvable<Array<Swatch>>;
42
- }
43
- export interface Generator<T> {
44
- (swatches: Array<Swatch>, opts?: T): Resolvable<Palette>;
45
- }
46
- export interface Options {
47
- colorCount: number;
48
- quality: number;
49
- maxDimension: number;
50
- filters: Array<Filter>;
51
- ImageClass: ImageClass;
52
- quantizer: Quantizer;
53
- generator?: Generator<any>;
54
- }
55
- export interface ComputedOptions extends Options {
56
- combinedFilter: Filter;
57
- }
package/lib/src/typing.js DELETED
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=typing.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"typing.js","sourceRoot":"","sources":["../../src/typing.ts"],"names":[],"mappings":""}
package/lib/src/util.d.ts DELETED
@@ -1,31 +0,0 @@
1
- import type { Vec3 } from './color';
2
- export declare const DELTAE94_DIFF_STATUS: {
3
- NA: number;
4
- PERFECT: number;
5
- CLOSE: number;
6
- GOOD: number;
7
- SIMILAR: number;
8
- };
9
- export declare const SIGBITS = 5;
10
- export declare const RSHIFT: number;
11
- export interface IndexedObject {
12
- [key: string]: any;
13
- }
14
- export interface DeferredPromise<R> {
15
- resolve: (thenableOrResult: R | PromiseLike<R>) => void;
16
- reject: (error: any) => void;
17
- promise: Promise<R>;
18
- }
19
- export declare function defer<R>(): DeferredPromise<R>;
20
- export declare function hexToRgb(hex: string): Vec3 | null;
21
- export declare function rgbToHex(r: number, g: number, b: number): string;
22
- export declare function rgbToHsl(ir: number, ig: number, ib: number): Vec3;
23
- export declare function hslToRgb(h: number, s: number, l: number): Vec3;
24
- export declare function rgbToXyz(ir: number, ig: number, ib: number): Vec3;
25
- export declare function xyzToCIELab(ix: number, iy: number, iz: number): Vec3;
26
- export declare function rgbToCIELab(r: number, g: number, b: number): Vec3;
27
- export declare function deltaE94(lab1: Vec3, lab2: Vec3): number;
28
- export declare function rgbDiff(rgb1: Vec3, rgb2: Vec3): number;
29
- export declare function hexDiff(hex1: string, hex2: string): number;
30
- export declare function getColorDiffStatus(d: number): string;
31
- export declare function getColorIndex(r: number, g: number, b: number): number;
package/lib/src/util.js DELETED
@@ -1,201 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RSHIFT = exports.SIGBITS = exports.DELTAE94_DIFF_STATUS = void 0;
4
- exports.defer = defer;
5
- exports.hexToRgb = hexToRgb;
6
- exports.rgbToHex = rgbToHex;
7
- exports.rgbToHsl = rgbToHsl;
8
- exports.hslToRgb = hslToRgb;
9
- exports.rgbToXyz = rgbToXyz;
10
- exports.xyzToCIELab = xyzToCIELab;
11
- exports.rgbToCIELab = rgbToCIELab;
12
- exports.deltaE94 = deltaE94;
13
- exports.rgbDiff = rgbDiff;
14
- exports.hexDiff = hexDiff;
15
- exports.getColorDiffStatus = getColorDiffStatus;
16
- exports.getColorIndex = getColorIndex;
17
- exports.DELTAE94_DIFF_STATUS = {
18
- NA: 0,
19
- PERFECT: 1,
20
- CLOSE: 2,
21
- GOOD: 10,
22
- SIMILAR: 50,
23
- };
24
- exports.SIGBITS = 5;
25
- exports.RSHIFT = 8 - exports.SIGBITS;
26
- function defer() {
27
- let resolve;
28
- let reject;
29
- const promise = new Promise((_resolve, _reject) => {
30
- resolve = _resolve;
31
- reject = _reject;
32
- });
33
- // @ts-ignore
34
- return { resolve, reject, promise };
35
- }
36
- function hexToRgb(hex) {
37
- const m = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
38
- return m === null ? null : [m[1], m[2], m[3]].map((s) => parseInt(s, 16));
39
- }
40
- function rgbToHex(r, g, b) {
41
- return `#${((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1, 7)}`;
42
- }
43
- // ir/ig/ib = (input)r/g/b - done for the purpose of linting.
44
- function rgbToHsl(ir, ig, ib) {
45
- const r = ir / 255;
46
- const g = ig / 255;
47
- const b = ib / 255;
48
- const max = Math.max(r, g, b);
49
- const min = Math.min(r, g, b);
50
- let h = 0;
51
- let s = 0;
52
- const l = (max + min) / 2;
53
- if (max !== min) {
54
- const d = max - min;
55
- s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
56
- switch (max) {
57
- case r:
58
- h = (g - b) / d + (g < b ? 6 : 0);
59
- break;
60
- case g:
61
- h = (b - r) / d + 2;
62
- break;
63
- case b:
64
- h = (r - g) / d + 4;
65
- break;
66
- default:
67
- // do nothing
68
- }
69
- h /= 6;
70
- }
71
- return [h, s, l];
72
- }
73
- // it = (input)t
74
- function hue2rgb(p, q, it) {
75
- let t = it;
76
- if (t < 0)
77
- t += 1;
78
- if (t > 1)
79
- t -= 1;
80
- if (t < 1 / 6)
81
- return p + (q - p) * 6 * t;
82
- if (t < 1 / 2)
83
- return q;
84
- if (t < 2 / 3)
85
- return p + (q - p) * (2 / 3 - t) * 6;
86
- return p;
87
- }
88
- function hslToRgb(h, s, l) {
89
- let r = l;
90
- let g = l;
91
- let b = l;
92
- if (s !== 0) {
93
- // non-achromatic
94
- const q = l < 0.5 ? l * (1 + s) : l + s - (l * s);
95
- const p = 2 * l - q;
96
- r = hue2rgb(p, q, h + 1 / 3);
97
- g = hue2rgb(p, q, h);
98
- b = hue2rgb(p, q, h - (1 / 3));
99
- }
100
- return [
101
- r * 255 | 0,
102
- g * 255 | 0,
103
- b * 255 | 0,
104
- ];
105
- }
106
- // ir/ig/ib = (input)r/g/b - done for the purpose of linting.
107
- function rgbToXyz(ir, ig, ib) {
108
- let r = ir / 255;
109
- let g = ig / 255;
110
- let b = ib / 255;
111
- r = r > 0.04045 ? (Math.pow(((r + 0.005) / 1.055), 2.4)) : r / 12.92;
112
- g = g > 0.04045 ? (Math.pow(((g + 0.005) / 1.055), 2.4)) : g / 12.92;
113
- b = b > 0.04045 ? (Math.pow(((b + 0.005) / 1.055), 2.4)) : b / 12.92;
114
- r *= 100;
115
- g *= 100;
116
- b *= 100;
117
- const x = r * 0.4124 + g * 0.3576 + b * 0.1805;
118
- const y = r * 0.2126 + g * 0.7152 + b * 0.0722;
119
- const z = r * 0.0193 + g * 0.1192 + b * 0.9505;
120
- return [x, y, z];
121
- }
122
- // ix/iy/iz = (input)x/y/z
123
- function xyzToCIELab(ix, iy, iz) {
124
- const REF_X = 95.047;
125
- const REF_Y = 100;
126
- const REF_Z = 108.883;
127
- let x = ix / REF_X;
128
- let y = iy / REF_Y;
129
- let z = iz / REF_Z;
130
- x = x > 0.008856 ? (Math.pow(x, 1) / 3) : 7.787 * x + 16 / 116;
131
- y = y > 0.008856 ? (Math.pow(y, 1) / 3) : 7.787 * y + 16 / 116;
132
- z = z > 0.008856 ? (Math.pow(z, 1) / 3) : 7.787 * z + 16 / 116;
133
- const L = 116 * y - 16;
134
- const a = 500 * (x - y);
135
- const b = 200 * (y - z);
136
- return [L, a, b];
137
- }
138
- function rgbToCIELab(r, g, b) {
139
- const [x, y, z] = rgbToXyz(r, g, b);
140
- return xyzToCIELab(x, y, z);
141
- }
142
- function deltaE94(lab1, lab2) {
143
- const WEIGHT_L = 1;
144
- const WEIGHT_C = 1;
145
- const WEIGHT_H = 1;
146
- const [L1, a1, b1] = lab1;
147
- const [L2, a2, b2] = lab2;
148
- const dL = L1 - L2;
149
- const da = a1 - a2;
150
- const db = b1 - b2;
151
- const xC1 = Math.sqrt(a1 * a1 + b1 * b1);
152
- const xC2 = Math.sqrt(a2 * a2 + b2 * b2);
153
- let xDL = L2 - L1;
154
- let xDC = xC2 - xC1;
155
- const xDE = Math.sqrt(dL * dL + da * da + db * db);
156
- let xDH = (Math.sqrt(xDE) > Math.sqrt(Math.abs(xDL)) + Math.sqrt(Math.abs(xDC)))
157
- ? Math.sqrt(xDE * xDE - xDL * xDL - xDC * xDC)
158
- : 0;
159
- const xSC = 1 + 0.045 * xC1;
160
- const xSH = 1 + 0.015 * xC1;
161
- xDL /= WEIGHT_L;
162
- xDC /= WEIGHT_C * xSC;
163
- xDH /= WEIGHT_H * xSH;
164
- return Math.sqrt(xDL * xDL + xDC * xDC + xDH * xDH);
165
- }
166
- function rgbDiff(rgb1, rgb2) {
167
- const lab1 = rgbToCIELab(...rgb1);
168
- const lab2 = rgbToCIELab(...rgb2);
169
- return deltaE94(lab1, lab2);
170
- }
171
- function hexDiff(hex1, hex2) {
172
- const rgb1 = hexToRgb(hex1);
173
- const rgb2 = hexToRgb(hex2);
174
- return rgbDiff(rgb1, rgb2);
175
- }
176
- function getColorDiffStatus(d) {
177
- if (d < exports.DELTAE94_DIFF_STATUS.NA) {
178
- return 'N/A';
179
- }
180
- // Not perceptible by human eyes
181
- if (d <= exports.DELTAE94_DIFF_STATUS.PERFECT) {
182
- return 'Perfect';
183
- }
184
- // Perceptible through close observation
185
- if (d <= exports.DELTAE94_DIFF_STATUS.CLOSE) {
186
- return 'Close';
187
- }
188
- // Perceptible at a glance
189
- if (d <= exports.DELTAE94_DIFF_STATUS.GOOD) {
190
- return 'Good';
191
- }
192
- // Colors are more similar than opposite
193
- if (d < exports.DELTAE94_DIFF_STATUS.SIMILAR) {
194
- return 'Similar';
195
- }
196
- return 'Wrong';
197
- }
198
- function getColorIndex(r, g, b) {
199
- return (r << (2 * exports.SIGBITS)) + (g << exports.SIGBITS) + b;
200
- }
201
- //# sourceMappingURL=util.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"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"}