@chr33s/pdf-upng 5.0.0

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inflator.js","sourceRoot":"","sources":["../src/inflator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ export declare class Quantizer {
2
+ static M4: {
3
+ multVec: (m: number[], v: number[]) => number[];
4
+ dot: (x: number[], y: number[]) => number;
5
+ sml: (a: number, y: number[]) => number[];
6
+ };
7
+ static quantize(abuf: ArrayBuffer, ps: number, doKmeans?: boolean): QuantizeResult;
8
+ static remap(inds: Uint8Array, tb32: Uint32Array, pl32: Uint32Array): void;
9
+ static kmeans(sb: Uint8Array, inds: Uint8Array, plte: Uint8Array): number;
10
+ static updatePalette(sb: Uint8Array, inds: Uint8Array, plte: Uint8Array): void;
11
+ static findNearest(sb: Uint8Array, inds: Uint8Array, plte: Uint8Array): number;
12
+ static getKDtree(nimg: Uint8Array, ps: number, err?: number): [any, any[]];
13
+ static getNearest(nd: any, r: number, g: number, b: number, a: number): any;
14
+ static planeDst(est: any, r: number, g: number, b: number, a: number): number;
15
+ static dist(q: number[], r: number, g: number, b: number, a: number): number;
16
+ static splitPixels(nimg: Uint8Array, nimg32: Uint32Array, i0: number, i1: number, e: number[], eMq: number): number;
17
+ static vecDot(nimg: Uint8Array, i: number, e: number[]): number;
18
+ static stats(nimg: Uint8Array, i0: number, i1: number): {
19
+ R: number[];
20
+ m: number[];
21
+ N: number;
22
+ };
23
+ static estats(stats: any): {
24
+ Cov: number[];
25
+ q: number[];
26
+ e: number[];
27
+ L: number;
28
+ eMq255: number;
29
+ eMq: number;
30
+ rgba: number;
31
+ };
32
+ }
33
+ interface QuantizeResult {
34
+ abuf: ArrayBuffer;
35
+ inds: Uint8Array;
36
+ plte: {
37
+ est: {
38
+ rgba: number;
39
+ };
40
+ }[];
41
+ }
42
+ export {};
@@ -0,0 +1,368 @@
1
+ export class Quantizer {
2
+ static M4 = {
3
+ multVec: function (m, v) {
4
+ return [
5
+ m[0] * v[0] + m[1] * v[1] + m[2] * v[2] + m[3] * v[3],
6
+ m[4] * v[0] + m[5] * v[1] + m[6] * v[2] + m[7] * v[3],
7
+ m[8] * v[0] + m[9] * v[1] + m[10] * v[2] + m[11] * v[3],
8
+ m[12] * v[0] + m[13] * v[1] + m[14] * v[2] + m[15] * v[3],
9
+ ];
10
+ },
11
+ dot: function (x, y) {
12
+ return x[0] * y[0] + x[1] * y[1] + x[2] * y[2] + x[3] * y[3];
13
+ },
14
+ sml: function (a, y) {
15
+ return [a * y[0], a * y[1], a * y[2], a * y[3]];
16
+ },
17
+ };
18
+ static quantize(abuf, ps, doKmeans) {
19
+ const sb = new Uint8Array(abuf);
20
+ const tb = sb.slice(0);
21
+ const tb32 = new Uint32Array(tb.buffer);
22
+ const KD = Quantizer.getKDtree(tb, ps);
23
+ const root = KD[0];
24
+ const leafs = KD[1];
25
+ const K = leafs.length;
26
+ const cl32 = new Uint32Array(K);
27
+ const clr8 = new Uint8Array(cl32.buffer);
28
+ for (let i = 0; i < K; i++)
29
+ cl32[i] = leafs[i].est.rgba;
30
+ const len = sb.length;
31
+ const inds = new Uint8Array(len >> 2);
32
+ let nd;
33
+ if (K <= 60) {
34
+ Quantizer.findNearest(sb, inds, clr8);
35
+ Quantizer.remap(inds, tb32, cl32);
36
+ }
37
+ else if (sb.length < 32e6)
38
+ for (let i = 0; i < len; i += 4) {
39
+ const r = sb[i] * (1 / 255);
40
+ const g = sb[i + 1] * (1 / 255);
41
+ const b = sb[i + 2] * (1 / 255);
42
+ const a = sb[i + 3] * (1 / 255);
43
+ nd = Quantizer.getNearest(root, r, g, b, a);
44
+ inds[i >> 2] = nd.ind;
45
+ tb32[i >> 2] = nd.est.rgba;
46
+ }
47
+ else
48
+ for (let i = 0; i < len; i += 4) {
49
+ const r = sb[i] * (1 / 255);
50
+ const g = sb[i + 1] * (1 / 255);
51
+ const b = sb[i + 2] * (1 / 255);
52
+ const a = sb[i + 3] * (1 / 255);
53
+ nd = root;
54
+ while (nd.left)
55
+ nd = Quantizer.planeDst(nd.est, r, g, b, a) <= 0 ? nd.left : nd.right;
56
+ inds[i >> 2] = nd.ind;
57
+ tb32[i >> 2] = nd.est.rgba;
58
+ }
59
+ if (doKmeans || sb.length * K < 10 * 4e6) {
60
+ let le = 1e9;
61
+ for (let i = 0; i < 10; i++) {
62
+ const ce = Quantizer.kmeans(sb, inds, clr8);
63
+ if (ce / le > 0.997)
64
+ break;
65
+ le = ce;
66
+ }
67
+ for (let i = 0; i < K; i++)
68
+ leafs[i].est.rgba = cl32[i];
69
+ Quantizer.remap(inds, tb32, cl32);
70
+ }
71
+ return { abuf: tb.buffer, inds: inds, plte: leafs };
72
+ }
73
+ static remap(inds, tb32, pl32) {
74
+ for (let i = 0; i < inds.length; i++)
75
+ tb32[i] = pl32[inds[i]];
76
+ }
77
+ static kmeans(sb, inds, plte) {
78
+ Quantizer.updatePalette(sb, inds, plte);
79
+ const err = Quantizer.findNearest(sb, inds, plte);
80
+ return err;
81
+ }
82
+ static updatePalette(sb, inds, plte) {
83
+ const K = plte.length >>> 2;
84
+ const sums = new Uint32Array(K * 4);
85
+ const cnts = new Uint32Array(K);
86
+ for (let i = 0; i < sb.length; i += 4) {
87
+ const ind = inds[i >>> 2];
88
+ const qi = ind * 4;
89
+ cnts[ind]++;
90
+ sums[qi] += sb[i];
91
+ sums[qi + 1] += sb[i + 1];
92
+ sums[qi + 2] += sb[i + 2];
93
+ sums[qi + 3] += sb[i + 3];
94
+ }
95
+ for (let i = 0; i < plte.length; i++)
96
+ plte[i] = Math.round(sums[i] / cnts[i >>> 2]);
97
+ }
98
+ static findNearest(sb, inds, plte) {
99
+ let terr = 0;
100
+ const K = plte.length >>> 2;
101
+ const nd = []; // squared half-distance to the nearest color
102
+ for (let i = 0; i < K; i++) {
103
+ const qi = i * 4;
104
+ const r = plte[qi];
105
+ const g = plte[qi + 1];
106
+ const b = plte[qi + 2];
107
+ const a = plte[qi + 3];
108
+ let te = 1e9;
109
+ for (let j = 0; j < K; j++) {
110
+ if (i == j)
111
+ continue;
112
+ const qj = j * 4;
113
+ const dr = r - plte[qj];
114
+ const dg = g - plte[qj + 1];
115
+ const db = b - plte[qj + 2];
116
+ const da = a - plte[qj + 3];
117
+ const err = dr * dr + dg * dg + db * db + da * da;
118
+ if (err < te)
119
+ te = err;
120
+ }
121
+ nd[i] = Math.sqrt(te) * 0.5;
122
+ nd[i] = nd[i] * nd[i];
123
+ }
124
+ for (let i = 0; i < sb.length; i += 4) {
125
+ const r = sb[i];
126
+ const g = sb[i + 1];
127
+ const b = sb[i + 2];
128
+ const a = sb[i + 3];
129
+ let ti = inds[i >>> 2];
130
+ let qi = ti * 4;
131
+ let dr = r - plte[qi];
132
+ let dg = g - plte[qi + 1];
133
+ let db = b - plte[qi + 2];
134
+ let da = a - plte[qi + 3];
135
+ let te = dr * dr + dg * dg + db * db + da * da;
136
+ if (te > nd[ti])
137
+ for (let j = 0; j < K; j++) {
138
+ qi = j * 4;
139
+ dr = r - plte[qi];
140
+ dg = g - plte[qi + 1];
141
+ db = b - plte[qi + 2];
142
+ da = a - plte[qi + 3];
143
+ const err = dr * dr + dg * dg + db * db + da * da;
144
+ if (err < te) {
145
+ te = err;
146
+ ti = j;
147
+ if (te < nd[j])
148
+ break;
149
+ }
150
+ }
151
+ inds[i >>> 2] = ti;
152
+ terr += te;
153
+ }
154
+ return terr / (sb.length >>> 2);
155
+ }
156
+ static getKDtree(nimg, ps, err) {
157
+ if (err == null)
158
+ err = 0.0001;
159
+ const nimg32 = new Uint32Array(nimg.buffer);
160
+ const root = {
161
+ i0: 0,
162
+ i1: nimg.length,
163
+ bst: null,
164
+ est: null,
165
+ tdst: 0,
166
+ left: null,
167
+ right: null,
168
+ }; // basic statistic, extra statistic
169
+ root.bst = Quantizer.stats(nimg, root.i0, root.i1);
170
+ root.est = Quantizer.estats(root.bst);
171
+ const leafs = [root];
172
+ while (leafs.length < ps) {
173
+ let maxL = 0;
174
+ let mi = 0;
175
+ for (let i = 0; i < leafs.length; i++)
176
+ if (leafs[i].est.L > maxL) {
177
+ maxL = leafs[i].est.L;
178
+ mi = i;
179
+ }
180
+ if (maxL < err)
181
+ break;
182
+ const node = leafs[mi];
183
+ const s0 = Quantizer.splitPixels(nimg, nimg32, node.i0, node.i1, node.est.e, node.est.eMq255);
184
+ const s0wrong = node.i0 >= s0 || node.i1 <= s0;
185
+ if (s0wrong) {
186
+ node.est.L = 0;
187
+ continue;
188
+ }
189
+ const ln = {
190
+ i0: node.i0,
191
+ i1: s0,
192
+ bst: null,
193
+ est: null,
194
+ tdst: 0,
195
+ left: null,
196
+ right: null,
197
+ };
198
+ ln.bst = Quantizer.stats(nimg, ln.i0, ln.i1);
199
+ ln.est = Quantizer.estats(ln.bst);
200
+ const rn = {
201
+ i0: s0,
202
+ i1: node.i1,
203
+ bst: null,
204
+ est: null,
205
+ tdst: 0,
206
+ left: null,
207
+ right: null,
208
+ };
209
+ rn.bst = { R: [], m: [], N: node.bst.N - ln.bst.N };
210
+ for (let i = 0; i < 16; i++)
211
+ rn.bst.R[i] = node.bst.R[i] - ln.bst.R[i];
212
+ for (let i = 0; i < 4; i++)
213
+ rn.bst.m[i] = node.bst.m[i] - ln.bst.m[i];
214
+ rn.est = Quantizer.estats(rn.bst);
215
+ node.left = ln;
216
+ node.right = rn;
217
+ leafs[mi] = ln;
218
+ leafs.push(rn);
219
+ }
220
+ leafs.sort(function (a, b) {
221
+ return b.bst.N - a.bst.N;
222
+ });
223
+ for (let i = 0; i < leafs.length; i++)
224
+ leafs[i].ind = i;
225
+ return [root, leafs];
226
+ }
227
+ static getNearest(nd, r, g, b, a) {
228
+ if (nd.left == null) {
229
+ nd.tdst = Quantizer.dist(nd.est.q, r, g, b, a);
230
+ return nd;
231
+ }
232
+ const pd = Quantizer.planeDst(nd.est, r, g, b, a);
233
+ let node0 = nd.left;
234
+ let node1 = nd.right;
235
+ if (pd > 0) {
236
+ node0 = nd.right;
237
+ node1 = nd.left;
238
+ }
239
+ const ln = Quantizer.getNearest(node0, r, g, b, a);
240
+ if (ln.tdst <= pd * pd)
241
+ return ln;
242
+ const rn = Quantizer.getNearest(node1, r, g, b, a);
243
+ return rn.tdst < ln.tdst ? rn : ln;
244
+ }
245
+ static planeDst(est, r, g, b, a) {
246
+ const e = est.e;
247
+ return e[0] * r + e[1] * g + e[2] * b + e[3] * a - est.eMq;
248
+ }
249
+ static dist(q, r, g, b, a) {
250
+ const d0 = r - q[0];
251
+ const d1 = g - q[1];
252
+ const d2 = b - q[2];
253
+ const d3 = a - q[3];
254
+ return d0 * d0 + d1 * d1 + d2 * d2 + d3 * d3;
255
+ }
256
+ static splitPixels(nimg, nimg32, i0, i1, e, eMq) {
257
+ i1 -= 4;
258
+ while (i0 < i1) {
259
+ while (Quantizer.vecDot(nimg, i0, e) <= eMq)
260
+ i0 += 4;
261
+ while (Quantizer.vecDot(nimg, i1, e) > eMq)
262
+ i1 -= 4;
263
+ if (i0 >= i1)
264
+ break;
265
+ const t = nimg32[i0 >> 2];
266
+ nimg32[i0 >> 2] = nimg32[i1 >> 2];
267
+ nimg32[i1 >> 2] = t;
268
+ i0 += 4;
269
+ i1 -= 4;
270
+ }
271
+ while (Quantizer.vecDot(nimg, i0, e) > eMq)
272
+ i0 -= 4;
273
+ return i0 + 4;
274
+ }
275
+ static vecDot(nimg, i, e) {
276
+ return nimg[i] * e[0] + nimg[i + 1] * e[1] + nimg[i + 2] * e[2] + nimg[i + 3] * e[3];
277
+ }
278
+ static stats(nimg, i0, i1) {
279
+ const R = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
280
+ const m = [0, 0, 0, 0];
281
+ const N = (i1 - i0) >> 2;
282
+ for (let i = i0; i < i1; i += 4) {
283
+ const r = nimg[i] * (1 / 255);
284
+ const g = nimg[i + 1] * (1 / 255);
285
+ const b = nimg[i + 2] * (1 / 255);
286
+ const a = nimg[i + 3] * (1 / 255);
287
+ m[0] += r;
288
+ m[1] += g;
289
+ m[2] += b;
290
+ m[3] += a;
291
+ R[0] += r * r;
292
+ R[1] += r * g;
293
+ R[2] += r * b;
294
+ R[3] += r * a;
295
+ R[5] += g * g;
296
+ R[6] += g * b;
297
+ R[7] += g * a;
298
+ R[10] += b * b;
299
+ R[11] += b * a;
300
+ R[15] += a * a;
301
+ }
302
+ R[4] = R[1];
303
+ R[8] = R[2];
304
+ R[9] = R[6];
305
+ R[12] = R[3];
306
+ R[13] = R[7];
307
+ R[14] = R[11];
308
+ return { R: R, m: m, N: N };
309
+ }
310
+ static estats(stats) {
311
+ const R = stats.R;
312
+ const m = stats.m;
313
+ const N = stats.N;
314
+ const m0 = m[0];
315
+ const m1 = m[1];
316
+ const m2 = m[2];
317
+ const m3 = m[3];
318
+ const iN = N == 0 ? 0 : 1 / N;
319
+ const Rj = [
320
+ R[0] - m0 * m0 * iN,
321
+ R[1] - m0 * m1 * iN,
322
+ R[2] - m0 * m2 * iN,
323
+ R[3] - m0 * m3 * iN,
324
+ R[4] - m1 * m0 * iN,
325
+ R[5] - m1 * m1 * iN,
326
+ R[6] - m1 * m2 * iN,
327
+ R[7] - m1 * m3 * iN,
328
+ R[8] - m2 * m0 * iN,
329
+ R[9] - m2 * m1 * iN,
330
+ R[10] - m2 * m2 * iN,
331
+ R[11] - m2 * m3 * iN,
332
+ R[12] - m3 * m0 * iN,
333
+ R[13] - m3 * m1 * iN,
334
+ R[14] - m3 * m2 * iN,
335
+ R[15] - m3 * m3 * iN,
336
+ ];
337
+ const A = Rj;
338
+ const M = Quantizer.M4;
339
+ let b = [Math.random(), Math.random(), Math.random(), Math.random()];
340
+ let mi = 0;
341
+ let tmi = 0;
342
+ if (N != 0)
343
+ for (let i = 0; i < 16; i++) {
344
+ b = M.multVec(A, b);
345
+ tmi = Math.sqrt(M.dot(b, b));
346
+ b = M.sml(1 / tmi, b);
347
+ if (i != 0 && Math.abs(tmi - mi) < 1e-9)
348
+ break;
349
+ mi = tmi;
350
+ }
351
+ const q = [m0 * iN, m1 * iN, m2 * iN, m3 * iN];
352
+ const eMq255 = M.dot(M.sml(255, q), b);
353
+ return {
354
+ Cov: Rj,
355
+ q: q,
356
+ e: b,
357
+ L: mi,
358
+ eMq255: eMq255,
359
+ eMq: M.dot(b, q),
360
+ rgba: ((Math.round(255 * q[3]) << 24) |
361
+ (Math.round(255 * q[2]) << 16) |
362
+ (Math.round(255 * q[1]) << 8) |
363
+ (Math.round(255 * q[0]) << 0)) >>>
364
+ 0,
365
+ };
366
+ }
367
+ }
368
+ //# sourceMappingURL=quantizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quantizer.js","sourceRoot":"","sources":["../src/quantizer.ts"],"names":[],"mappings":"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"}
package/dist/upng.d.ts ADDED
@@ -0,0 +1,60 @@
1
+ export declare class UPNG {
2
+ #private;
3
+ static toRGBA8(out: Image): ArrayBuffer[];
4
+ static decode(buff: ArrayBuffer): Image;
5
+ static encode(bufs: ArrayBuffer[], w: number, h: number, cnum: number, dels?: number[], tabs?: ImageTabs, forbidPlte?: boolean): Promise<ArrayBuffer>;
6
+ static encodeLL(bufs: ArrayBuffer[], w: number, h: number, cc: number, ac: number, depth: number, dels?: number[], tabs?: ImageTabs): Promise<ArrayBuffer>;
7
+ }
8
+ export interface ImageFrameRect {
9
+ x: number;
10
+ y: number;
11
+ width: number;
12
+ height: number;
13
+ }
14
+ export interface ImageFrame {
15
+ rect: ImageFrameRect;
16
+ delay: number;
17
+ dispose: number;
18
+ blend: number;
19
+ data?: Uint8Array;
20
+ img?: Uint8Array;
21
+ cimg?: Uint8Array;
22
+ bpp?: number;
23
+ bpl?: number;
24
+ }
25
+ export interface ImageTabACTL {
26
+ num_frames: number;
27
+ num_plays: number;
28
+ }
29
+ export interface ImageTabText {
30
+ [key: string]: string;
31
+ }
32
+ export interface ImageTabs {
33
+ acTL?: ImageTabACTL;
34
+ pHYs?: number[];
35
+ cHRM?: number[];
36
+ tEXt?: ImageTabText;
37
+ iTXt?: ImageTabText;
38
+ PLTE?: number[];
39
+ hIST?: number[];
40
+ tRNS?: number | number[];
41
+ gAMA?: number;
42
+ sRGB?: number;
43
+ bKGD?: number | number[];
44
+ loop?: number;
45
+ iCCP?: Uint8Array;
46
+ CgBI?: Uint8Array;
47
+ [key: string]: any;
48
+ }
49
+ export interface Image {
50
+ width: number;
51
+ height: number;
52
+ depth: number;
53
+ ctype: number;
54
+ frames: ImageFrame[];
55
+ tabs: ImageTabs;
56
+ data: Uint8Array;
57
+ interlace?: number;
58
+ compress?: number;
59
+ filter?: number;
60
+ }