@blazediff/cli 2.0.3 → 2.0.5
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 +0 -1
- package/dist/cli.js +283 -290
- package/dist/commands/core.js +178 -185
- package/dist/commands/gmsd.js +172 -172
- package/dist/commands/hitchhikers-ssim.js +175 -175
- package/dist/commands/msssim.js +181 -181
- package/dist/commands/ssim.js +196 -196
- package/package.json +8 -7
- package/dist/index.d.mts +0 -69
package/dist/cli.js
CHANGED
|
@@ -165,7 +165,7 @@ var init_bin = __esm({
|
|
|
165
165
|
});
|
|
166
166
|
|
|
167
167
|
// ../core/dist/index.mjs
|
|
168
|
-
function g(n2, r, t, e, o2, { threshold: f2 = 0.1, alpha: c2 = 0.1, aaColor:
|
|
168
|
+
function g(n2, r, t, e, o2, { threshold: f2 = 0.1, alpha: c2 = 0.1, aaColor: s2 = [255, 255, 0], diffColor: a2 = [255, 0, 0], includeAA: U3, diffColorAlt: O2, diffMask: b, fastBufferCheck: y = true } = {}) {
|
|
169
169
|
if (!_(n2) || !_(r) || t && !_(t)) throw new Error("Image data: Uint8Array, Uint8ClampedArray or Buffer expected.");
|
|
170
170
|
if (n2.length !== r.length || t && t.length !== n2.length) throw new Error(`Image sizes do not match. Image 1 size: ${n2.length}, image 2 size: ${r.length}`);
|
|
171
171
|
if (n2.length !== e * o2 * 4) throw new Error(`Image data size does not match width/height. Expecting ${e * o2 * 4}. Got ${n2.length}`);
|
|
@@ -173,7 +173,7 @@ function g(n2, r, t, e, o2, { threshold: f2 = 0.1, alpha: c2 = 0.1, aaColor: s =
|
|
|
173
173
|
if (t && !b) for (let A = 0; A < e * o2; A++) L(n2, A * 4, c2, t);
|
|
174
174
|
return 0;
|
|
175
175
|
}
|
|
176
|
-
let
|
|
176
|
+
let m2 = e * o2, u = new Uint32Array(n2.buffer, n2.byteOffset, m2), d2 = new Uint32Array(r.buffer, r.byteOffset, m2), l = tn(e, o2), i2 = Math.ceil(e / l), I2 = Math.ceil(o2 / l), z2 = i2 * I2, x = new Uint16Array(z2), M = 35215 * f2 * f2, B = 0;
|
|
177
177
|
for (let A = 0; A < I2; A++) for (let R = 0; R < i2; R++) {
|
|
178
178
|
let p2 = R * l, v = A * l, D3 = Math.min(p2 + l, e), P4 = Math.min(v + l, o2), $ = false;
|
|
179
179
|
n: for (let C3 = v; C3 < P4; C3++) {
|
|
@@ -198,7 +198,7 @@ function g(n2, r, t, e, o2, { threshold: f2 = 0.1, alpha: c2 = 0.1, aaColor: s =
|
|
|
198
198
|
}
|
|
199
199
|
}
|
|
200
200
|
if (B === 0) return 0;
|
|
201
|
-
let [F2, J, K2] =
|
|
201
|
+
let [F2, J, K2] = s2, [Q2, W2, Z2] = a2, [k, w, h2] = O2 || a2, T = 0;
|
|
202
202
|
for (let A = 0; A < B; A++) {
|
|
203
203
|
let R = x[A], p2 = R % i2, v = R / i2 | 0, D3 = p2 * l, P4 = v * l, $ = Math.min(D3 + l, e), C3 = Math.min(P4 + l, o2);
|
|
204
204
|
for (let Y = P4; Y < C3; Y++) {
|
|
@@ -210,7 +210,7 @@ function g(n2, r, t, e, o2, { threshold: f2 = 0.1, alpha: c2 = 0.1, aaColor: s =
|
|
|
210
210
|
continue;
|
|
211
211
|
}
|
|
212
212
|
let H3 = N(n2, r, X2, X2);
|
|
213
|
-
Math.abs(H3) > M ? !U3 && (j(n2, E3, Y, e, o2, u, d2) || j(r, E3, Y, e, o2, d2, u)) ? t && !b && V(t, X2, F2, J, K2) : (t && (H3 < 0 ? V(t, X2, k,
|
|
213
|
+
Math.abs(H3) > M ? !U3 && (j(n2, E3, Y, e, o2, u, d2) || j(r, E3, Y, e, o2, d2, u)) ? t && !b && V(t, X2, F2, J, K2) : (t && (H3 < 0 ? V(t, X2, k, w, h2) : V(t, X2, Q2, W2, Z2)), T++) : t && !b && L(n2, X2, c2, t);
|
|
214
214
|
}
|
|
215
215
|
}
|
|
216
216
|
}
|
|
@@ -224,46 +224,46 @@ function tn(n2, r) {
|
|
|
224
224
|
return 1 << Math.round(f2);
|
|
225
225
|
}
|
|
226
226
|
function N(n2, r, t, e) {
|
|
227
|
-
let o2 = n2[t], f2 = n2[t + 1], c2 = n2[t + 2],
|
|
228
|
-
if (!y && !
|
|
229
|
-
if (
|
|
227
|
+
let o2 = n2[t], f2 = n2[t + 1], c2 = n2[t + 2], s2 = n2[t + 3], a2 = r[e], U3 = r[e + 1], O2 = r[e + 2], b = r[e + 3], y = o2 - a2, m2 = f2 - U3, u = c2 - O2, d2 = s2 - b;
|
|
228
|
+
if (!y && !m2 && !u && !d2) return 0;
|
|
229
|
+
if (s2 < 255 || b < 255) {
|
|
230
230
|
let x = 48 + 159 * (t % 2), M = 48 + 159 * ((t / 1.618033988749895 | 0) & 1), B = 48 + 159 * ((t / 2.618033988749895 | 0) & 1);
|
|
231
|
-
y = (o2 *
|
|
231
|
+
y = (o2 * s2 - a2 * b - x * d2) / 255, m2 = (f2 * s2 - U3 * b - M * d2) / 255, u = (c2 * s2 - O2 * b - B * d2) / 255;
|
|
232
232
|
}
|
|
233
|
-
let l = y * 0.29889531 +
|
|
233
|
+
let l = y * 0.29889531 + m2 * 0.58662247 + u * 0.11448223, i2 = y * 0.59597799 - m2 * 0.2741761 - u * 0.32180189, I2 = y * 0.21147017 - m2 * 0.52261711 + u * 0.31114694, z2 = 0.5053 * l * l + 0.299 * i2 * i2 + 0.1957 * I2 * I2;
|
|
234
234
|
return l > 0 ? -z2 : z2;
|
|
235
235
|
}
|
|
236
236
|
function rn(n2, r, t, e) {
|
|
237
|
-
let o2 = n2[t], f2 = n2[t + 1], c2 = n2[t + 2],
|
|
238
|
-
if (!y && !
|
|
239
|
-
if (
|
|
237
|
+
let o2 = n2[t], f2 = n2[t + 1], c2 = n2[t + 2], s2 = n2[t + 3], a2 = r[e], U3 = r[e + 1], O2 = r[e + 2], b = r[e + 3], y = o2 - a2, m2 = f2 - U3, u = c2 - O2, d2 = s2 - b;
|
|
238
|
+
if (!y && !m2 && !u && !d2) return 0;
|
|
239
|
+
if (s2 < 255 || b < 255) {
|
|
240
240
|
let i2 = 48 + 159 * (t % 2), I2 = 48 + 159 * ((t / 1.618033988749895 | 0) & 1), z2 = 48 + 159 * ((t / 2.618033988749895 | 0) & 1);
|
|
241
|
-
y = (o2 *
|
|
241
|
+
y = (o2 * s2 - a2 * b - i2 * d2) / 255, m2 = (f2 * s2 - U3 * b - I2 * d2) / 255, u = (c2 * s2 - O2 * b - z2 * d2) / 255;
|
|
242
242
|
}
|
|
243
|
-
return y * 0.29889531 +
|
|
243
|
+
return y * 0.29889531 + m2 * 0.58662247 + u * 0.11448223;
|
|
244
244
|
}
|
|
245
245
|
function j(n2, r, t, e, o2, f2, c2) {
|
|
246
|
-
let
|
|
247
|
-
for (let x =
|
|
246
|
+
let s2 = Math.max(r - 1, 0), a2 = Math.max(t - 1, 0), U3 = Math.min(r + 1, e - 1), O2 = Math.min(t + 1, o2 - 1), y = (t * e + r) * 4, m2 = r === s2 || r === U3 || t === a2 || t === O2 ? 1 : 0, u = 0, d2 = 0, l = 0, i2 = 0, I2 = 0, z2 = 0;
|
|
247
|
+
for (let x = s2; x <= U3; x++) for (let M = a2; M <= O2; M++) {
|
|
248
248
|
if (x === r && M === t) continue;
|
|
249
249
|
let B = rn(n2, n2, y, (M * e + x) * 4);
|
|
250
250
|
if (B === 0) {
|
|
251
|
-
if (
|
|
251
|
+
if (m2++, m2 > 2) return false;
|
|
252
252
|
} else B < u ? (u = B, l = x, i2 = M) : B > d2 && (d2 = B, I2 = x, z2 = M);
|
|
253
253
|
}
|
|
254
254
|
return u === 0 || d2 === 0 ? false : q(f2, l, i2, e, o2) && q(c2, l, i2, e, o2) || q(f2, I2, z2, e, o2) && q(c2, I2, z2, e, o2);
|
|
255
255
|
}
|
|
256
256
|
function q(n2, r, t, e, o2) {
|
|
257
|
-
let f2 = t * e + r, c2 = n2[f2],
|
|
257
|
+
let f2 = t * e + r, c2 = n2[f2], s2 = r === 0 || r === e - 1 || t === 0 || t === o2 - 1 ? 1 : 0;
|
|
258
258
|
if (t > 0) {
|
|
259
259
|
let a2 = f2 - e;
|
|
260
|
-
r > 0 && n2[a2 - 1] === c2 &&
|
|
260
|
+
r > 0 && n2[a2 - 1] === c2 && s2++, n2[a2] === c2 && s2++, r < e - 1 && n2[a2 + 1] === c2 && s2++;
|
|
261
261
|
}
|
|
262
|
-
if (r > 0 && n2[f2 - 1] === c2 &&
|
|
262
|
+
if (r > 0 && n2[f2 - 1] === c2 && s2++, r < e - 1 && n2[f2 + 1] === c2 && s2++, t < o2 - 1) {
|
|
263
263
|
let a2 = f2 + e;
|
|
264
|
-
r > 0 && n2[a2 - 1] === c2 &&
|
|
264
|
+
r > 0 && n2[a2 - 1] === c2 && s2++, n2[a2] === c2 && s2++, r < e - 1 && n2[a2 + 1] === c2 && s2++;
|
|
265
265
|
}
|
|
266
|
-
return
|
|
266
|
+
return s2 > 2;
|
|
267
267
|
}
|
|
268
268
|
function L(n2, r, t, e) {
|
|
269
269
|
let o2 = 255 + (n2[r] * 0.29889531 + n2[r + 1] * 0.58662247 + n2[r + 2] * 0.11448223 - 255) * t * n2[r + 3] / 255;
|
|
@@ -2372,37 +2372,37 @@ var require_png = __commonJS({
|
|
|
2372
2372
|
// ../pngjs-transformer/dist/index.mjs
|
|
2373
2373
|
var dist_exports = {};
|
|
2374
2374
|
__export(dist_exports, {
|
|
2375
|
-
default: () =>
|
|
2376
|
-
pngjsTransformer: () =>
|
|
2375
|
+
default: () => m,
|
|
2376
|
+
pngjsTransformer: () => c
|
|
2377
2377
|
});
|
|
2378
2378
|
async function d(r) {
|
|
2379
|
-
return new Promise((
|
|
2379
|
+
return new Promise((n2, a2) => {
|
|
2380
2380
|
try {
|
|
2381
2381
|
let t = typeof r == "string" ? (0, import_fs.readFileSync)(r) : r, e = import_pngjs.PNG.sync.read(t);
|
|
2382
|
-
|
|
2382
|
+
n2({ data: e.data, width: e.width, height: e.height });
|
|
2383
2383
|
} catch (t) {
|
|
2384
|
-
|
|
2384
|
+
a2(new Error(`Failed to read PNG file ${r}: ${t}`));
|
|
2385
2385
|
}
|
|
2386
2386
|
});
|
|
2387
2387
|
}
|
|
2388
|
-
async function
|
|
2389
|
-
return new Promise((
|
|
2388
|
+
async function s(r, n2) {
|
|
2389
|
+
return new Promise((a2, t) => {
|
|
2390
2390
|
try {
|
|
2391
2391
|
let e = new import_pngjs.PNG({ width: r.width, height: r.height });
|
|
2392
|
-
e.data = Buffer.from(r.data.buffer), (0, import_fs.writeFileSync)(
|
|
2392
|
+
e.data = Buffer.isBuffer(r.data) ? r.data : Buffer.from(r.data.buffer), (0, import_fs.writeFileSync)(n2, import_pngjs.PNG.sync.write(e)), a2();
|
|
2393
2393
|
} catch (e) {
|
|
2394
|
-
t(new Error(`Failed to write PNG file ${
|
|
2394
|
+
t(new Error(`Failed to write PNG file ${n2}: ${e}`));
|
|
2395
2395
|
}
|
|
2396
2396
|
});
|
|
2397
2397
|
}
|
|
2398
|
-
var import_fs, import_pngjs,
|
|
2398
|
+
var import_fs, import_pngjs, c, m;
|
|
2399
2399
|
var init_dist2 = __esm({
|
|
2400
2400
|
"../pngjs-transformer/dist/index.mjs"() {
|
|
2401
2401
|
"use strict";
|
|
2402
2402
|
import_fs = require("fs");
|
|
2403
2403
|
import_pngjs = __toESM(require_png(), 1);
|
|
2404
|
-
|
|
2405
|
-
|
|
2404
|
+
c = { read: d, write: s };
|
|
2405
|
+
m = c;
|
|
2406
2406
|
}
|
|
2407
2407
|
});
|
|
2408
2408
|
|
|
@@ -2697,7 +2697,7 @@ var require_detect_libc = __commonJS({
|
|
|
2697
2697
|
}
|
|
2698
2698
|
return null;
|
|
2699
2699
|
};
|
|
2700
|
-
var versionSuffix = (
|
|
2700
|
+
var versionSuffix = (s2) => s2.trim().split(/\s+/)[1];
|
|
2701
2701
|
var versionFromCommand = (out) => {
|
|
2702
2702
|
const [getconf, ldd1, ldd2] = out.split(/[\r\n]+/);
|
|
2703
2703
|
if (getconf && getconf.includes(GLIBC)) {
|
|
@@ -2950,14 +2950,14 @@ var require_semver = __commonJS({
|
|
|
2950
2950
|
this.options = options;
|
|
2951
2951
|
this.loose = !!options.loose;
|
|
2952
2952
|
this.includePrerelease = !!options.includePrerelease;
|
|
2953
|
-
const
|
|
2954
|
-
if (!
|
|
2953
|
+
const m2 = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL]);
|
|
2954
|
+
if (!m2) {
|
|
2955
2955
|
throw new TypeError(`Invalid Version: ${version}`);
|
|
2956
2956
|
}
|
|
2957
2957
|
this.raw = version;
|
|
2958
|
-
this.major = +
|
|
2959
|
-
this.minor = +
|
|
2960
|
-
this.patch = +
|
|
2958
|
+
this.major = +m2[1];
|
|
2959
|
+
this.minor = +m2[2];
|
|
2960
|
+
this.patch = +m2[3];
|
|
2961
2961
|
if (this.major > MAX_SAFE_INTEGER || this.major < 0) {
|
|
2962
2962
|
throw new TypeError("Invalid major version");
|
|
2963
2963
|
}
|
|
@@ -2967,10 +2967,10 @@ var require_semver = __commonJS({
|
|
|
2967
2967
|
if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {
|
|
2968
2968
|
throw new TypeError("Invalid patch version");
|
|
2969
2969
|
}
|
|
2970
|
-
if (!
|
|
2970
|
+
if (!m2[4]) {
|
|
2971
2971
|
this.prerelease = [];
|
|
2972
2972
|
} else {
|
|
2973
|
-
this.prerelease =
|
|
2973
|
+
this.prerelease = m2[4].split(".").map((id) => {
|
|
2974
2974
|
if (/^[0-9]+$/.test(id)) {
|
|
2975
2975
|
const num = +id;
|
|
2976
2976
|
if (num >= 0 && num < MAX_SAFE_INTEGER) {
|
|
@@ -2980,7 +2980,7 @@ var require_semver = __commonJS({
|
|
|
2980
2980
|
return id;
|
|
2981
2981
|
});
|
|
2982
2982
|
}
|
|
2983
|
-
this.build =
|
|
2983
|
+
this.build = m2[5] ? m2[5].split(".") : [];
|
|
2984
2984
|
this.format();
|
|
2985
2985
|
}
|
|
2986
2986
|
format() {
|
|
@@ -3439,18 +3439,18 @@ var require_comparator = __commonJS({
|
|
|
3439
3439
|
}
|
|
3440
3440
|
parse(comp) {
|
|
3441
3441
|
const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR];
|
|
3442
|
-
const
|
|
3443
|
-
if (!
|
|
3442
|
+
const m2 = comp.match(r);
|
|
3443
|
+
if (!m2) {
|
|
3444
3444
|
throw new TypeError(`Invalid comparator: ${comp}`);
|
|
3445
3445
|
}
|
|
3446
|
-
this.operator =
|
|
3446
|
+
this.operator = m2[1] !== void 0 ? m2[1] : "";
|
|
3447
3447
|
if (this.operator === "=") {
|
|
3448
3448
|
this.operator = "";
|
|
3449
3449
|
}
|
|
3450
|
-
if (!
|
|
3450
|
+
if (!m2[2]) {
|
|
3451
3451
|
this.semver = ANY;
|
|
3452
3452
|
} else {
|
|
3453
|
-
this.semver = new SemVer(
|
|
3453
|
+
this.semver = new SemVer(m2[2], this.options.loose);
|
|
3454
3454
|
}
|
|
3455
3455
|
}
|
|
3456
3456
|
toString() {
|
|
@@ -3710,20 +3710,20 @@ var require_range = __commonJS({
|
|
|
3710
3710
|
};
|
|
3711
3711
|
var replaceTilde = (comp, options) => {
|
|
3712
3712
|
const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE];
|
|
3713
|
-
return comp.replace(r, (_2, M,
|
|
3714
|
-
debug("tilde", comp, _2, M,
|
|
3713
|
+
return comp.replace(r, (_2, M, m2, p2, pr) => {
|
|
3714
|
+
debug("tilde", comp, _2, M, m2, p2, pr);
|
|
3715
3715
|
let ret;
|
|
3716
3716
|
if (isX(M)) {
|
|
3717
3717
|
ret = "";
|
|
3718
|
-
} else if (isX(
|
|
3718
|
+
} else if (isX(m2)) {
|
|
3719
3719
|
ret = `>=${M}.0.0 <${+M + 1}.0.0-0`;
|
|
3720
3720
|
} else if (isX(p2)) {
|
|
3721
|
-
ret = `>=${M}.${
|
|
3721
|
+
ret = `>=${M}.${m2}.0 <${M}.${+m2 + 1}.0-0`;
|
|
3722
3722
|
} else if (pr) {
|
|
3723
3723
|
debug("replaceTilde pr", pr);
|
|
3724
|
-
ret = `>=${M}.${
|
|
3724
|
+
ret = `>=${M}.${m2}.${p2}-${pr} <${M}.${+m2 + 1}.0-0`;
|
|
3725
3725
|
} else {
|
|
3726
|
-
ret = `>=${M}.${
|
|
3726
|
+
ret = `>=${M}.${m2}.${p2} <${M}.${+m2 + 1}.0-0`;
|
|
3727
3727
|
}
|
|
3728
3728
|
debug("tilde return", ret);
|
|
3729
3729
|
return ret;
|
|
@@ -3736,40 +3736,40 @@ var require_range = __commonJS({
|
|
|
3736
3736
|
debug("caret", comp, options);
|
|
3737
3737
|
const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET];
|
|
3738
3738
|
const z2 = options.includePrerelease ? "-0" : "";
|
|
3739
|
-
return comp.replace(r, (_2, M,
|
|
3740
|
-
debug("caret", comp, _2, M,
|
|
3739
|
+
return comp.replace(r, (_2, M, m2, p2, pr) => {
|
|
3740
|
+
debug("caret", comp, _2, M, m2, p2, pr);
|
|
3741
3741
|
let ret;
|
|
3742
3742
|
if (isX(M)) {
|
|
3743
3743
|
ret = "";
|
|
3744
|
-
} else if (isX(
|
|
3744
|
+
} else if (isX(m2)) {
|
|
3745
3745
|
ret = `>=${M}.0.0${z2} <${+M + 1}.0.0-0`;
|
|
3746
3746
|
} else if (isX(p2)) {
|
|
3747
3747
|
if (M === "0") {
|
|
3748
|
-
ret = `>=${M}.${
|
|
3748
|
+
ret = `>=${M}.${m2}.0${z2} <${M}.${+m2 + 1}.0-0`;
|
|
3749
3749
|
} else {
|
|
3750
|
-
ret = `>=${M}.${
|
|
3750
|
+
ret = `>=${M}.${m2}.0${z2} <${+M + 1}.0.0-0`;
|
|
3751
3751
|
}
|
|
3752
3752
|
} else if (pr) {
|
|
3753
3753
|
debug("replaceCaret pr", pr);
|
|
3754
3754
|
if (M === "0") {
|
|
3755
|
-
if (
|
|
3756
|
-
ret = `>=${M}.${
|
|
3755
|
+
if (m2 === "0") {
|
|
3756
|
+
ret = `>=${M}.${m2}.${p2}-${pr} <${M}.${m2}.${+p2 + 1}-0`;
|
|
3757
3757
|
} else {
|
|
3758
|
-
ret = `>=${M}.${
|
|
3758
|
+
ret = `>=${M}.${m2}.${p2}-${pr} <${M}.${+m2 + 1}.0-0`;
|
|
3759
3759
|
}
|
|
3760
3760
|
} else {
|
|
3761
|
-
ret = `>=${M}.${
|
|
3761
|
+
ret = `>=${M}.${m2}.${p2}-${pr} <${+M + 1}.0.0-0`;
|
|
3762
3762
|
}
|
|
3763
3763
|
} else {
|
|
3764
3764
|
debug("no pr");
|
|
3765
3765
|
if (M === "0") {
|
|
3766
|
-
if (
|
|
3767
|
-
ret = `>=${M}.${
|
|
3766
|
+
if (m2 === "0") {
|
|
3767
|
+
ret = `>=${M}.${m2}.${p2}${z2} <${M}.${m2}.${+p2 + 1}-0`;
|
|
3768
3768
|
} else {
|
|
3769
|
-
ret = `>=${M}.${
|
|
3769
|
+
ret = `>=${M}.${m2}.${p2}${z2} <${M}.${+m2 + 1}.0-0`;
|
|
3770
3770
|
}
|
|
3771
3771
|
} else {
|
|
3772
|
-
ret = `>=${M}.${
|
|
3772
|
+
ret = `>=${M}.${m2}.${p2} <${+M + 1}.0.0-0`;
|
|
3773
3773
|
}
|
|
3774
3774
|
}
|
|
3775
3775
|
debug("caret return", ret);
|
|
@@ -3783,10 +3783,10 @@ var require_range = __commonJS({
|
|
|
3783
3783
|
var replaceXRange = (comp, options) => {
|
|
3784
3784
|
comp = comp.trim();
|
|
3785
3785
|
const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE];
|
|
3786
|
-
return comp.replace(r, (ret, gtlt, M,
|
|
3787
|
-
debug("xRange", comp, ret, gtlt, M,
|
|
3786
|
+
return comp.replace(r, (ret, gtlt, M, m2, p2, pr) => {
|
|
3787
|
+
debug("xRange", comp, ret, gtlt, M, m2, p2, pr);
|
|
3788
3788
|
const xM = isX(M);
|
|
3789
|
-
const xm = xM || isX(
|
|
3789
|
+
const xm = xM || isX(m2);
|
|
3790
3790
|
const xp = xm || isX(p2);
|
|
3791
3791
|
const anyX = xp;
|
|
3792
3792
|
if (gtlt === "=" && anyX) {
|
|
@@ -3801,17 +3801,17 @@ var require_range = __commonJS({
|
|
|
3801
3801
|
}
|
|
3802
3802
|
} else if (gtlt && anyX) {
|
|
3803
3803
|
if (xm) {
|
|
3804
|
-
|
|
3804
|
+
m2 = 0;
|
|
3805
3805
|
}
|
|
3806
3806
|
p2 = 0;
|
|
3807
3807
|
if (gtlt === ">") {
|
|
3808
3808
|
gtlt = ">=";
|
|
3809
3809
|
if (xm) {
|
|
3810
3810
|
M = +M + 1;
|
|
3811
|
-
|
|
3811
|
+
m2 = 0;
|
|
3812
3812
|
p2 = 0;
|
|
3813
3813
|
} else {
|
|
3814
|
-
|
|
3814
|
+
m2 = +m2 + 1;
|
|
3815
3815
|
p2 = 0;
|
|
3816
3816
|
}
|
|
3817
3817
|
} else if (gtlt === "<=") {
|
|
@@ -3819,17 +3819,17 @@ var require_range = __commonJS({
|
|
|
3819
3819
|
if (xm) {
|
|
3820
3820
|
M = +M + 1;
|
|
3821
3821
|
} else {
|
|
3822
|
-
|
|
3822
|
+
m2 = +m2 + 1;
|
|
3823
3823
|
}
|
|
3824
3824
|
}
|
|
3825
3825
|
if (gtlt === "<") {
|
|
3826
3826
|
pr = "-0";
|
|
3827
3827
|
}
|
|
3828
|
-
ret = `${gtlt + M}.${
|
|
3828
|
+
ret = `${gtlt + M}.${m2}.${p2}${pr}`;
|
|
3829
3829
|
} else if (xm) {
|
|
3830
3830
|
ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`;
|
|
3831
3831
|
} else if (xp) {
|
|
3832
|
-
ret = `>=${M}.${
|
|
3832
|
+
ret = `>=${M}.${m2}.0${pr} <${M}.${+m2 + 1}.0-0`;
|
|
3833
3833
|
}
|
|
3834
3834
|
debug("xRange return", ret);
|
|
3835
3835
|
return ret;
|
|
@@ -4234,7 +4234,7 @@ var require_libvips = __commonJS({
|
|
|
4234
4234
|
}
|
|
4235
4235
|
return false;
|
|
4236
4236
|
};
|
|
4237
|
-
var sha512 = (
|
|
4237
|
+
var sha512 = (s2) => createHash("sha512").update(s2).digest("hex");
|
|
4238
4238
|
var yarnLocator = () => {
|
|
4239
4239
|
try {
|
|
4240
4240
|
const identHash = sha512(`imgsharp-libvips-${buildPlatformArch()}`);
|
|
@@ -6443,11 +6443,11 @@ var require_color_string = __commonJS({
|
|
|
6443
6443
|
var match = string.match(hsl);
|
|
6444
6444
|
if (match) {
|
|
6445
6445
|
var alpha = parseFloat(match[4]);
|
|
6446
|
-
var
|
|
6447
|
-
var
|
|
6446
|
+
var h2 = (parseFloat(match[1]) % 360 + 360) % 360;
|
|
6447
|
+
var s2 = clamp(parseFloat(match[2]), 0, 100);
|
|
6448
6448
|
var l = clamp(parseFloat(match[3]), 0, 100);
|
|
6449
6449
|
var a2 = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);
|
|
6450
|
-
return [
|
|
6450
|
+
return [h2, s2, l, a2];
|
|
6451
6451
|
}
|
|
6452
6452
|
return null;
|
|
6453
6453
|
};
|
|
@@ -6459,11 +6459,11 @@ var require_color_string = __commonJS({
|
|
|
6459
6459
|
var match = string.match(hwb);
|
|
6460
6460
|
if (match) {
|
|
6461
6461
|
var alpha = parseFloat(match[4]);
|
|
6462
|
-
var
|
|
6463
|
-
var
|
|
6462
|
+
var h2 = (parseFloat(match[1]) % 360 + 360) % 360;
|
|
6463
|
+
var w = clamp(parseFloat(match[2]), 0, 100);
|
|
6464
6464
|
var b = clamp(parseFloat(match[3]), 0, 100);
|
|
6465
6465
|
var a2 = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);
|
|
6466
|
-
return [
|
|
6466
|
+
return [h2, w, b, a2];
|
|
6467
6467
|
}
|
|
6468
6468
|
return null;
|
|
6469
6469
|
};
|
|
@@ -6557,37 +6557,37 @@ var require_conversions = __commonJS({
|
|
|
6557
6557
|
const min = Math.min(r, g2, b);
|
|
6558
6558
|
const max = Math.max(r, g2, b);
|
|
6559
6559
|
const delta = max - min;
|
|
6560
|
-
let
|
|
6561
|
-
let
|
|
6560
|
+
let h2;
|
|
6561
|
+
let s2;
|
|
6562
6562
|
if (max === min) {
|
|
6563
|
-
|
|
6563
|
+
h2 = 0;
|
|
6564
6564
|
} else if (r === max) {
|
|
6565
|
-
|
|
6565
|
+
h2 = (g2 - b) / delta;
|
|
6566
6566
|
} else if (g2 === max) {
|
|
6567
|
-
|
|
6567
|
+
h2 = 2 + (b - r) / delta;
|
|
6568
6568
|
} else if (b === max) {
|
|
6569
|
-
|
|
6569
|
+
h2 = 4 + (r - g2) / delta;
|
|
6570
6570
|
}
|
|
6571
|
-
|
|
6572
|
-
if (
|
|
6573
|
-
|
|
6571
|
+
h2 = Math.min(h2 * 60, 360);
|
|
6572
|
+
if (h2 < 0) {
|
|
6573
|
+
h2 += 360;
|
|
6574
6574
|
}
|
|
6575
6575
|
const l = (min + max) / 2;
|
|
6576
6576
|
if (max === min) {
|
|
6577
|
-
|
|
6577
|
+
s2 = 0;
|
|
6578
6578
|
} else if (l <= 0.5) {
|
|
6579
|
-
|
|
6579
|
+
s2 = delta / (max + min);
|
|
6580
6580
|
} else {
|
|
6581
|
-
|
|
6581
|
+
s2 = delta / (2 - max - min);
|
|
6582
6582
|
}
|
|
6583
|
-
return [
|
|
6583
|
+
return [h2, s2 * 100, l * 100];
|
|
6584
6584
|
};
|
|
6585
6585
|
convert.rgb.hsv = function(rgb) {
|
|
6586
6586
|
let rdif;
|
|
6587
6587
|
let gdif;
|
|
6588
6588
|
let bdif;
|
|
6589
|
-
let
|
|
6590
|
-
let
|
|
6589
|
+
let h2;
|
|
6590
|
+
let s2;
|
|
6591
6591
|
const r = rgb[0] / 255;
|
|
6592
6592
|
const g2 = rgb[1] / 255;
|
|
6593
6593
|
const b = rgb[2] / 255;
|
|
@@ -6597,29 +6597,29 @@ var require_conversions = __commonJS({
|
|
|
6597
6597
|
return (v - c2) / 6 / diff + 1 / 2;
|
|
6598
6598
|
};
|
|
6599
6599
|
if (diff === 0) {
|
|
6600
|
-
|
|
6601
|
-
|
|
6600
|
+
h2 = 0;
|
|
6601
|
+
s2 = 0;
|
|
6602
6602
|
} else {
|
|
6603
|
-
|
|
6603
|
+
s2 = diff / v;
|
|
6604
6604
|
rdif = diffc(r);
|
|
6605
6605
|
gdif = diffc(g2);
|
|
6606
6606
|
bdif = diffc(b);
|
|
6607
6607
|
if (r === v) {
|
|
6608
|
-
|
|
6608
|
+
h2 = bdif - gdif;
|
|
6609
6609
|
} else if (g2 === v) {
|
|
6610
|
-
|
|
6610
|
+
h2 = 1 / 3 + rdif - bdif;
|
|
6611
6611
|
} else if (b === v) {
|
|
6612
|
-
|
|
6612
|
+
h2 = 2 / 3 + gdif - rdif;
|
|
6613
6613
|
}
|
|
6614
|
-
if (
|
|
6615
|
-
|
|
6616
|
-
} else if (
|
|
6617
|
-
|
|
6614
|
+
if (h2 < 0) {
|
|
6615
|
+
h2 += 1;
|
|
6616
|
+
} else if (h2 > 1) {
|
|
6617
|
+
h2 -= 1;
|
|
6618
6618
|
}
|
|
6619
6619
|
}
|
|
6620
6620
|
return [
|
|
6621
|
-
|
|
6622
|
-
|
|
6621
|
+
h2 * 360,
|
|
6622
|
+
s2 * 100,
|
|
6623
6623
|
v * 100
|
|
6624
6624
|
];
|
|
6625
6625
|
};
|
|
@@ -6627,10 +6627,10 @@ var require_conversions = __commonJS({
|
|
|
6627
6627
|
const r = rgb[0];
|
|
6628
6628
|
const g2 = rgb[1];
|
|
6629
6629
|
let b = rgb[2];
|
|
6630
|
-
const
|
|
6631
|
-
const
|
|
6630
|
+
const h2 = convert.rgb.hsl(rgb)[0];
|
|
6631
|
+
const w = 1 / 255 * Math.min(r, Math.min(g2, b));
|
|
6632
6632
|
b = 1 - 1 / 255 * Math.max(r, Math.max(g2, b));
|
|
6633
|
-
return [
|
|
6633
|
+
return [h2, w * 100, b * 100];
|
|
6634
6634
|
};
|
|
6635
6635
|
convert.rgb.cmyk = function(rgb) {
|
|
6636
6636
|
const r = rgb[0] / 255;
|
|
@@ -6638,9 +6638,9 @@ var require_conversions = __commonJS({
|
|
|
6638
6638
|
const b = rgb[2] / 255;
|
|
6639
6639
|
const k = Math.min(1 - r, 1 - g2, 1 - b);
|
|
6640
6640
|
const c2 = (1 - r - k) / (1 - k) || 0;
|
|
6641
|
-
const
|
|
6641
|
+
const m2 = (1 - g2 - k) / (1 - k) || 0;
|
|
6642
6642
|
const y = (1 - b - k) / (1 - k) || 0;
|
|
6643
|
-
return [c2 * 100,
|
|
6643
|
+
return [c2 * 100, m2 * 100, y * 100, k * 100];
|
|
6644
6644
|
};
|
|
6645
6645
|
function comparativeDistance(x, y) {
|
|
6646
6646
|
return (x[0] - y[0]) ** 2 + (x[1] - y[1]) ** 2 + (x[2] - y[2]) ** 2;
|
|
@@ -6694,25 +6694,25 @@ var require_conversions = __commonJS({
|
|
|
6694
6694
|
return [l, a2, b];
|
|
6695
6695
|
};
|
|
6696
6696
|
convert.hsl.rgb = function(hsl) {
|
|
6697
|
-
const
|
|
6698
|
-
const
|
|
6697
|
+
const h2 = hsl[0] / 360;
|
|
6698
|
+
const s2 = hsl[1] / 100;
|
|
6699
6699
|
const l = hsl[2] / 100;
|
|
6700
6700
|
let t2;
|
|
6701
6701
|
let t3;
|
|
6702
6702
|
let val;
|
|
6703
|
-
if (
|
|
6703
|
+
if (s2 === 0) {
|
|
6704
6704
|
val = l * 255;
|
|
6705
6705
|
return [val, val, val];
|
|
6706
6706
|
}
|
|
6707
6707
|
if (l < 0.5) {
|
|
6708
|
-
t2 = l * (1 +
|
|
6708
|
+
t2 = l * (1 + s2);
|
|
6709
6709
|
} else {
|
|
6710
|
-
t2 = l +
|
|
6710
|
+
t2 = l + s2 - l * s2;
|
|
6711
6711
|
}
|
|
6712
6712
|
const t1 = 2 * l - t2;
|
|
6713
6713
|
const rgb = [0, 0, 0];
|
|
6714
6714
|
for (let i2 = 0; i2 < 3; i2++) {
|
|
6715
|
-
t3 =
|
|
6715
|
+
t3 = h2 + 1 / 3 * -(i2 - 1);
|
|
6716
6716
|
if (t3 < 0) {
|
|
6717
6717
|
t3++;
|
|
6718
6718
|
}
|
|
@@ -6733,27 +6733,27 @@ var require_conversions = __commonJS({
|
|
|
6733
6733
|
return rgb;
|
|
6734
6734
|
};
|
|
6735
6735
|
convert.hsl.hsv = function(hsl) {
|
|
6736
|
-
const
|
|
6737
|
-
let
|
|
6736
|
+
const h2 = hsl[0];
|
|
6737
|
+
let s2 = hsl[1] / 100;
|
|
6738
6738
|
let l = hsl[2] / 100;
|
|
6739
|
-
let smin =
|
|
6739
|
+
let smin = s2;
|
|
6740
6740
|
const lmin = Math.max(l, 0.01);
|
|
6741
6741
|
l *= 2;
|
|
6742
|
-
|
|
6742
|
+
s2 *= l <= 1 ? l : 2 - l;
|
|
6743
6743
|
smin *= lmin <= 1 ? lmin : 2 - lmin;
|
|
6744
|
-
const v = (l +
|
|
6745
|
-
const sv = l === 0 ? 2 * smin / (lmin + smin) : 2 *
|
|
6746
|
-
return [
|
|
6744
|
+
const v = (l + s2) / 2;
|
|
6745
|
+
const sv = l === 0 ? 2 * smin / (lmin + smin) : 2 * s2 / (l + s2);
|
|
6746
|
+
return [h2, sv * 100, v * 100];
|
|
6747
6747
|
};
|
|
6748
6748
|
convert.hsv.rgb = function(hsv) {
|
|
6749
|
-
const
|
|
6750
|
-
const
|
|
6749
|
+
const h2 = hsv[0] / 60;
|
|
6750
|
+
const s2 = hsv[1] / 100;
|
|
6751
6751
|
let v = hsv[2] / 100;
|
|
6752
|
-
const hi = Math.floor(
|
|
6753
|
-
const f2 =
|
|
6754
|
-
const p2 = 255 * v * (1 -
|
|
6755
|
-
const q4 = 255 * v * (1 -
|
|
6756
|
-
const t = 255 * v * (1 -
|
|
6752
|
+
const hi = Math.floor(h2) % 6;
|
|
6753
|
+
const f2 = h2 - Math.floor(h2);
|
|
6754
|
+
const p2 = 255 * v * (1 - s2);
|
|
6755
|
+
const q4 = 255 * v * (1 - s2 * f2);
|
|
6756
|
+
const t = 255 * v * (1 - s2 * (1 - f2));
|
|
6757
6757
|
v *= 255;
|
|
6758
6758
|
switch (hi) {
|
|
6759
6759
|
case 0:
|
|
@@ -6771,22 +6771,22 @@ var require_conversions = __commonJS({
|
|
|
6771
6771
|
}
|
|
6772
6772
|
};
|
|
6773
6773
|
convert.hsv.hsl = function(hsv) {
|
|
6774
|
-
const
|
|
6775
|
-
const
|
|
6774
|
+
const h2 = hsv[0];
|
|
6775
|
+
const s2 = hsv[1] / 100;
|
|
6776
6776
|
const v = hsv[2] / 100;
|
|
6777
6777
|
const vmin = Math.max(v, 0.01);
|
|
6778
6778
|
let sl;
|
|
6779
6779
|
let l;
|
|
6780
|
-
l = (2 -
|
|
6781
|
-
const lmin = (2 -
|
|
6782
|
-
sl =
|
|
6780
|
+
l = (2 - s2) * v;
|
|
6781
|
+
const lmin = (2 - s2) * vmin;
|
|
6782
|
+
sl = s2 * vmin;
|
|
6783
6783
|
sl /= lmin <= 1 ? lmin : 2 - lmin;
|
|
6784
6784
|
sl = sl || 0;
|
|
6785
6785
|
l /= 2;
|
|
6786
|
-
return [
|
|
6786
|
+
return [h2, sl * 100, l * 100];
|
|
6787
6787
|
};
|
|
6788
6788
|
convert.hwb.rgb = function(hwb) {
|
|
6789
|
-
const
|
|
6789
|
+
const h2 = hwb[0] / 360;
|
|
6790
6790
|
let wh = hwb[1] / 100;
|
|
6791
6791
|
let bl = hwb[2] / 100;
|
|
6792
6792
|
const ratio = wh + bl;
|
|
@@ -6795,9 +6795,9 @@ var require_conversions = __commonJS({
|
|
|
6795
6795
|
wh /= ratio;
|
|
6796
6796
|
bl /= ratio;
|
|
6797
6797
|
}
|
|
6798
|
-
const i2 = Math.floor(6 *
|
|
6798
|
+
const i2 = Math.floor(6 * h2);
|
|
6799
6799
|
const v = 1 - bl;
|
|
6800
|
-
f2 = 6 *
|
|
6800
|
+
f2 = 6 * h2 - i2;
|
|
6801
6801
|
if ((i2 & 1) !== 0) {
|
|
6802
6802
|
f2 = 1 - f2;
|
|
6803
6803
|
}
|
|
@@ -6843,11 +6843,11 @@ var require_conversions = __commonJS({
|
|
|
6843
6843
|
};
|
|
6844
6844
|
convert.cmyk.rgb = function(cmyk) {
|
|
6845
6845
|
const c2 = cmyk[0] / 100;
|
|
6846
|
-
const
|
|
6846
|
+
const m2 = cmyk[1] / 100;
|
|
6847
6847
|
const y = cmyk[2] / 100;
|
|
6848
6848
|
const k = cmyk[3] / 100;
|
|
6849
6849
|
const r = 1 - Math.min(1, c2 * (1 - k) + k);
|
|
6850
|
-
const g2 = 1 - Math.min(1,
|
|
6850
|
+
const g2 = 1 - Math.min(1, m2 * (1 - k) + k);
|
|
6851
6851
|
const b = 1 - Math.min(1, y * (1 - k) + k);
|
|
6852
6852
|
return [r * 255, g2 * 255, b * 255];
|
|
6853
6853
|
};
|
|
@@ -6909,20 +6909,20 @@ var require_conversions = __commonJS({
|
|
|
6909
6909
|
const l = lab[0];
|
|
6910
6910
|
const a2 = lab[1];
|
|
6911
6911
|
const b = lab[2];
|
|
6912
|
-
let
|
|
6912
|
+
let h2;
|
|
6913
6913
|
const hr = Math.atan2(b, a2);
|
|
6914
|
-
|
|
6915
|
-
if (
|
|
6916
|
-
|
|
6914
|
+
h2 = hr * 360 / 2 / Math.PI;
|
|
6915
|
+
if (h2 < 0) {
|
|
6916
|
+
h2 += 360;
|
|
6917
6917
|
}
|
|
6918
6918
|
const c2 = Math.sqrt(a2 * a2 + b * b);
|
|
6919
|
-
return [l, c2,
|
|
6919
|
+
return [l, c2, h2];
|
|
6920
6920
|
};
|
|
6921
6921
|
convert.lch.lab = function(lch) {
|
|
6922
6922
|
const l = lch[0];
|
|
6923
6923
|
const c2 = lch[1];
|
|
6924
|
-
const
|
|
6925
|
-
const hr =
|
|
6924
|
+
const h2 = lch[2];
|
|
6925
|
+
const hr = h2 / 360 * 2 * Math.PI;
|
|
6926
6926
|
const a2 = c2 * Math.cos(hr);
|
|
6927
6927
|
const b = c2 * Math.sin(hr);
|
|
6928
6928
|
return [l, a2, b];
|
|
@@ -7036,9 +7036,9 @@ var require_conversions = __commonJS({
|
|
|
7036
7036
|
return [hue * 360, chroma * 100, grayscale * 100];
|
|
7037
7037
|
};
|
|
7038
7038
|
convert.hsl.hcg = function(hsl) {
|
|
7039
|
-
const
|
|
7039
|
+
const s2 = hsl[1] / 100;
|
|
7040
7040
|
const l = hsl[2] / 100;
|
|
7041
|
-
const c2 = l < 0.5 ? 2 *
|
|
7041
|
+
const c2 = l < 0.5 ? 2 * s2 * l : 2 * s2 * (1 - l);
|
|
7042
7042
|
let f2 = 0;
|
|
7043
7043
|
if (c2 < 1) {
|
|
7044
7044
|
f2 = (l - 0.5 * c2) / (1 - c2);
|
|
@@ -7046,9 +7046,9 @@ var require_conversions = __commonJS({
|
|
|
7046
7046
|
return [hsl[0], c2 * 100, f2 * 100];
|
|
7047
7047
|
};
|
|
7048
7048
|
convert.hsv.hcg = function(hsv) {
|
|
7049
|
-
const
|
|
7049
|
+
const s2 = hsv[1] / 100;
|
|
7050
7050
|
const v = hsv[2] / 100;
|
|
7051
|
-
const c2 =
|
|
7051
|
+
const c2 = s2 * v;
|
|
7052
7052
|
let f2 = 0;
|
|
7053
7053
|
if (c2 < 1) {
|
|
7054
7054
|
f2 = (v - c2) / (1 - c2);
|
|
@@ -7056,16 +7056,16 @@ var require_conversions = __commonJS({
|
|
|
7056
7056
|
return [hsv[0], c2 * 100, f2 * 100];
|
|
7057
7057
|
};
|
|
7058
7058
|
convert.hcg.rgb = function(hcg) {
|
|
7059
|
-
const
|
|
7059
|
+
const h2 = hcg[0] / 360;
|
|
7060
7060
|
const c2 = hcg[1] / 100;
|
|
7061
7061
|
const g2 = hcg[2] / 100;
|
|
7062
7062
|
if (c2 === 0) {
|
|
7063
7063
|
return [g2 * 255, g2 * 255, g2 * 255];
|
|
7064
7064
|
}
|
|
7065
7065
|
const pure = [0, 0, 0];
|
|
7066
|
-
const hi =
|
|
7066
|
+
const hi = h2 % 1 * 6;
|
|
7067
7067
|
const v = hi % 1;
|
|
7068
|
-
const
|
|
7068
|
+
const w = 1 - v;
|
|
7069
7069
|
let mg = 0;
|
|
7070
7070
|
switch (Math.floor(hi)) {
|
|
7071
7071
|
case 0:
|
|
@@ -7074,7 +7074,7 @@ var require_conversions = __commonJS({
|
|
|
7074
7074
|
pure[2] = 0;
|
|
7075
7075
|
break;
|
|
7076
7076
|
case 1:
|
|
7077
|
-
pure[0] =
|
|
7077
|
+
pure[0] = w;
|
|
7078
7078
|
pure[1] = 1;
|
|
7079
7079
|
pure[2] = 0;
|
|
7080
7080
|
break;
|
|
@@ -7085,7 +7085,7 @@ var require_conversions = __commonJS({
|
|
|
7085
7085
|
break;
|
|
7086
7086
|
case 3:
|
|
7087
7087
|
pure[0] = 0;
|
|
7088
|
-
pure[1] =
|
|
7088
|
+
pure[1] = w;
|
|
7089
7089
|
pure[2] = 1;
|
|
7090
7090
|
break;
|
|
7091
7091
|
case 4:
|
|
@@ -7096,7 +7096,7 @@ var require_conversions = __commonJS({
|
|
|
7096
7096
|
default:
|
|
7097
7097
|
pure[0] = 1;
|
|
7098
7098
|
pure[1] = 0;
|
|
7099
|
-
pure[2] =
|
|
7099
|
+
pure[2] = w;
|
|
7100
7100
|
}
|
|
7101
7101
|
mg = (1 - c2) * g2;
|
|
7102
7102
|
return [
|
|
@@ -7119,13 +7119,13 @@ var require_conversions = __commonJS({
|
|
|
7119
7119
|
const c2 = hcg[1] / 100;
|
|
7120
7120
|
const g2 = hcg[2] / 100;
|
|
7121
7121
|
const l = g2 * (1 - c2) + 0.5 * c2;
|
|
7122
|
-
let
|
|
7122
|
+
let s2 = 0;
|
|
7123
7123
|
if (l > 0 && l < 0.5) {
|
|
7124
|
-
|
|
7124
|
+
s2 = c2 / (2 * l);
|
|
7125
7125
|
} else if (l >= 0.5 && l < 1) {
|
|
7126
|
-
|
|
7126
|
+
s2 = c2 / (2 * (1 - l));
|
|
7127
7127
|
}
|
|
7128
|
-
return [hcg[0],
|
|
7128
|
+
return [hcg[0], s2 * 100, l * 100];
|
|
7129
7129
|
};
|
|
7130
7130
|
convert.hcg.hwb = function(hcg) {
|
|
7131
7131
|
const c2 = hcg[1] / 100;
|
|
@@ -7134,10 +7134,10 @@ var require_conversions = __commonJS({
|
|
|
7134
7134
|
return [hcg[0], (v - c2) * 100, (1 - v) * 100];
|
|
7135
7135
|
};
|
|
7136
7136
|
convert.hwb.hcg = function(hwb) {
|
|
7137
|
-
const
|
|
7137
|
+
const w = hwb[1] / 100;
|
|
7138
7138
|
const b = hwb[2] / 100;
|
|
7139
7139
|
const v = 1 - b;
|
|
7140
|
-
const c2 = v -
|
|
7140
|
+
const c2 = v - w;
|
|
7141
7141
|
let g2 = 0;
|
|
7142
7142
|
if (c2 < 1) {
|
|
7143
7143
|
g2 = (v - c2) / (1 - c2);
|
|
@@ -7615,14 +7615,14 @@ var require_color = __commonJS({
|
|
|
7615
7615
|
const color1 = mixinColor.rgb();
|
|
7616
7616
|
const color2 = this.rgb();
|
|
7617
7617
|
const p2 = weight === void 0 ? 0.5 : weight;
|
|
7618
|
-
const
|
|
7618
|
+
const w = 2 * p2 - 1;
|
|
7619
7619
|
const a2 = color1.alpha() - color2.alpha();
|
|
7620
|
-
const w1 = ((
|
|
7621
|
-
const
|
|
7620
|
+
const w1 = ((w * a2 === -1 ? w : (w + a2) / (1 + w * a2)) + 1) / 2;
|
|
7621
|
+
const w2 = 1 - w1;
|
|
7622
7622
|
return Color.rgb(
|
|
7623
|
-
w1 * color1.red() +
|
|
7624
|
-
w1 * color1.green() +
|
|
7625
|
-
w1 * color1.blue() +
|
|
7623
|
+
w1 * color1.red() + w2 * color2.red(),
|
|
7624
|
+
w1 * color1.green() + w2 * color2.green(),
|
|
7625
|
+
w1 * color1.blue() + w2 * color2.blue(),
|
|
7626
7626
|
color1.alpha() * p2 + color2.alpha() * (1 - p2)
|
|
7627
7627
|
);
|
|
7628
7628
|
}
|
|
@@ -7659,8 +7659,8 @@ var require_color = __commonJS({
|
|
|
7659
7659
|
}
|
|
7660
7660
|
function getset(model, channel, modifier) {
|
|
7661
7661
|
model = Array.isArray(model) ? model : [model];
|
|
7662
|
-
for (const
|
|
7663
|
-
(limiters[
|
|
7662
|
+
for (const m2 of model) {
|
|
7663
|
+
(limiters[m2] || (limiters[m2] = []))[channel] = modifier;
|
|
7664
7664
|
}
|
|
7665
7665
|
model = model[0];
|
|
7666
7666
|
return function(value) {
|
|
@@ -8905,7 +8905,7 @@ __export(core_exports, {
|
|
|
8905
8905
|
default: () => main2
|
|
8906
8906
|
});
|
|
8907
8907
|
function parseRGB(colorStr) {
|
|
8908
|
-
const parts = colorStr.split(",").map((
|
|
8908
|
+
const parts = colorStr.split(",").map((s2) => parseInt(s2.trim(), 10));
|
|
8909
8909
|
if (parts.length !== 3 || parts.some((p2) => Number.isNaN(p2) || p2 < 0 || p2 > 255)) {
|
|
8910
8910
|
throw new Error(
|
|
8911
8911
|
`Invalid RGB color format: ${colorStr}. Expected format: r,g,b (e.g., 255,0,0)`
|
|
@@ -8930,7 +8930,6 @@ Options:
|
|
|
8930
8930
|
--diff-color-alt <r,g,b> Alternative color for dark differences (default: same as diff-color)
|
|
8931
8931
|
--include-aa Include anti-aliasing detection
|
|
8932
8932
|
--diff-mask Draw diff over transparent background
|
|
8933
|
-
--color-space <name> Specify color space to use (e.g. yiq, ycbcr)
|
|
8934
8933
|
--transformer <name> Specify transformer to use (e.g. pngjs, sharp)
|
|
8935
8934
|
-h, --help Show this help message
|
|
8936
8935
|
|
|
@@ -9022,12 +9021,6 @@ async function main2() {
|
|
|
9022
9021
|
i2++;
|
|
9023
9022
|
}
|
|
9024
9023
|
break;
|
|
9025
|
-
case "--color-space":
|
|
9026
|
-
if (nextArg) {
|
|
9027
|
-
options.colorSpace = nextArg;
|
|
9028
|
-
i2++;
|
|
9029
|
-
}
|
|
9030
|
-
break;
|
|
9031
9024
|
default:
|
|
9032
9025
|
console.error(`Unknown option: ${arg}`);
|
|
9033
9026
|
printUsage2();
|
|
@@ -9132,7 +9125,7 @@ var init_core = __esm({
|
|
|
9132
9125
|
|
|
9133
9126
|
// ../gmsd/dist/index.mjs
|
|
9134
9127
|
function D(e, n2, a2, t, r, o2 = {}) {
|
|
9135
|
-
let { downsample:
|
|
9128
|
+
let { downsample: s2 = 0, c: c2 = 170 } = o2;
|
|
9136
9129
|
if (H(e, n2)) {
|
|
9137
9130
|
if (a2) for (let y = 0; y < t * r * 4; y += 4) a2[y] = 255, a2[y + 1] = 255, a2[y + 2] = 255, a2[y + 3] = 255;
|
|
9138
9131
|
return 0;
|
|
@@ -9143,7 +9136,7 @@ function D(e, n2, a2, t, r, o2 = {}) {
|
|
|
9143
9136
|
l = new Float32Array(t * r), u = new Float32Array(t * r);
|
|
9144
9137
|
for (let y = 0; y < t * r; y++) l[y] = e[y], u[y] = n2[y];
|
|
9145
9138
|
}
|
|
9146
|
-
if (
|
|
9139
|
+
if (s2 === 1) {
|
|
9147
9140
|
let y = P(l, t, r), B = P(u, t, r), d2 = Math.floor(t / 2), I2 = Math.floor(r / 2), M = new Float32Array(d2 * I2), v = new Float32Array(d2 * I2);
|
|
9148
9141
|
for (let i2 = 0; i2 < I2; i2++) for (let p2 = 0; p2 < d2; p2++) {
|
|
9149
9142
|
let G = i2 * 2 * t + p2 * 2;
|
|
@@ -9162,41 +9155,41 @@ function H(e, n2) {
|
|
|
9162
9155
|
function P(e, n2, a2) {
|
|
9163
9156
|
let t = new Float32Array(n2 * a2);
|
|
9164
9157
|
for (let r = 0; r < a2; r++) for (let o2 = 0; o2 < n2; o2++) {
|
|
9165
|
-
let
|
|
9166
|
-
for (let c2 = 0; c2 < 2; c2++) for (let
|
|
9167
|
-
let f2 = r + c2, l = o2 +
|
|
9168
|
-
f2 < a2 && l < n2 && (
|
|
9158
|
+
let s2 = 0;
|
|
9159
|
+
for (let c2 = 0; c2 < 2; c2++) for (let m2 = 0; m2 < 2; m2++) {
|
|
9160
|
+
let f2 = r + c2, l = o2 + m2;
|
|
9161
|
+
f2 < a2 && l < n2 && (s2 += e[f2 * n2 + l]);
|
|
9169
9162
|
}
|
|
9170
|
-
t[r * n2 + o2] =
|
|
9163
|
+
t[r * n2 + o2] = s2 / 4;
|
|
9171
9164
|
}
|
|
9172
9165
|
return t;
|
|
9173
9166
|
}
|
|
9174
9167
|
function O(e, n2, a2, t, r, o2) {
|
|
9175
9168
|
e.fill(0);
|
|
9176
|
-
for (let
|
|
9177
|
-
let
|
|
9169
|
+
for (let s2 = 1; s2 < o2 - 1; s2++) for (let c2 = 1; c2 < r - 1; c2++) {
|
|
9170
|
+
let m2 = s2 * r + c2, f2 = n2[m2], l = a2[m2], u = 2 * f2 * l + t, b = f2 * f2 + l * l + t, x = u / b, F2 = Math.floor(x * 255), A = m2 * 4;
|
|
9178
9171
|
e[A] = F2, e[A + 1] = F2, e[A + 2] = F2, e[A + 3] = 255;
|
|
9179
9172
|
}
|
|
9180
9173
|
}
|
|
9181
9174
|
function q2(e, n2, a2, t) {
|
|
9182
9175
|
let r = a2 * t;
|
|
9183
9176
|
for (let o2 = 0; o2 < r; o2++) {
|
|
9184
|
-
let
|
|
9185
|
-
n2[o2] = 0.298936 * c2 + 0.587043 *
|
|
9177
|
+
let s2 = o2 * 4, c2 = e[s2], m2 = e[s2 + 1], f2 = e[s2 + 2];
|
|
9178
|
+
n2[o2] = 0.298936 * c2 + 0.587043 * m2 + 0.114021 * f2;
|
|
9186
9179
|
}
|
|
9187
9180
|
}
|
|
9188
9181
|
function S(e, n2, a2) {
|
|
9189
9182
|
let t = new Float32Array(n2 * a2);
|
|
9190
9183
|
for (let r = 1; r < a2 - 1; r++) for (let o2 = 1; o2 < n2 - 1; o2++) {
|
|
9191
|
-
let
|
|
9192
|
-
t[
|
|
9184
|
+
let s2 = r * n2 + o2, c2 = e[(r - 1) * n2 + (o2 - 1)], m2 = e[(r - 1) * n2 + o2], f2 = e[(r - 1) * n2 + (o2 + 1)], l = e[r * n2 + (o2 - 1)], u = e[r * n2 + (o2 + 1)], b = e[(r + 1) * n2 + (o2 - 1)], x = e[(r + 1) * n2 + o2], F2 = e[(r + 1) * n2 + (o2 + 1)], A = (c2 + l + b - f2 - u - F2) / 3, g2 = (c2 + m2 + f2 - b - x - F2) / 3;
|
|
9185
|
+
t[s2] = Math.sqrt(A * A + g2 * g2);
|
|
9193
9186
|
}
|
|
9194
9187
|
return t;
|
|
9195
9188
|
}
|
|
9196
9189
|
function U(e, n2, a2, t, r) {
|
|
9197
9190
|
let o2 = [];
|
|
9198
|
-
for (let
|
|
9199
|
-
let
|
|
9191
|
+
for (let s2 = 1; s2 < r - 1; s2++) for (let c2 = 1; c2 < t - 1; c2++) {
|
|
9192
|
+
let m2 = s2 * t + c2, f2 = e[m2], l = n2[m2], u = 2 * f2 * l + a2, b = f2 * f2 + l * l + a2;
|
|
9200
9193
|
o2.push(u / b);
|
|
9201
9194
|
}
|
|
9202
9195
|
return new Float32Array(o2);
|
|
@@ -9208,8 +9201,8 @@ function W(e) {
|
|
|
9208
9201
|
for (let o2 = 0; o2 < n2; o2++) a2 += e[o2];
|
|
9209
9202
|
let t = a2 / n2, r = 0;
|
|
9210
9203
|
for (let o2 = 0; o2 < n2; o2++) {
|
|
9211
|
-
let
|
|
9212
|
-
r +=
|
|
9204
|
+
let s2 = e[o2] - t;
|
|
9205
|
+
r += s2 * s2;
|
|
9213
9206
|
}
|
|
9214
9207
|
return r /= n2, Math.sqrt(r);
|
|
9215
9208
|
}
|
|
@@ -9408,32 +9401,32 @@ function C2(f2, M, l) {
|
|
|
9408
9401
|
return r;
|
|
9409
9402
|
}
|
|
9410
9403
|
function N2(f2, M, l, r, n2, u = {}) {
|
|
9411
|
-
let { windowSize: e = 11, k1: A = 0.01, k2: a2 = 0.03, L: i2 = 255 } = u, c2 = C2(f2, r, n2),
|
|
9412
|
-
if (
|
|
9413
|
-
let y = Q(c2,
|
|
9414
|
-
c2 = y.img1,
|
|
9404
|
+
let { windowSize: e = 11, k1: A = 0.01, k2: a2 = 0.03, L: i2 = 255 } = u, c2 = C2(f2, r, n2), s2 = C2(M, r, n2), o2 = r, t = n2, m2 = Math.max(1, Math.round(Math.min(r, n2) / 256));
|
|
9405
|
+
if (m2 > 1) {
|
|
9406
|
+
let y = Q(c2, s2, o2, t, m2);
|
|
9407
|
+
c2 = y.img1, s2 = y.img2, o2 = y.width, t = y.height;
|
|
9415
9408
|
}
|
|
9416
9409
|
let x = P2(e, 1.5), b = (A * i2) ** 2, B = (a2 * i2) ** 2, R = o2 - e + 1, T = t - e + 1, g2 = R * T, v = new Float32Array(g2), O2 = new Float32Array(g2), G = new Float32Array(g2), H3 = new Float32Array(g2), I2 = new Float32Array(g2), U3 = new Float32Array(o2 * t);
|
|
9417
|
-
S2(c2, v, U3, o2, t, x, e), S2(
|
|
9410
|
+
S2(c2, v, U3, o2, t, x, e), S2(s2, O2, U3, o2, t, x, e);
|
|
9418
9411
|
let V3 = c2.length;
|
|
9419
9412
|
for (let y = 0; y < V3; y++) {
|
|
9420
|
-
let p2 = c2[y], d2 =
|
|
9421
|
-
U3[y] = p2 * d2, c2[y] = p2 * p2,
|
|
9413
|
+
let p2 = c2[y], d2 = s2[y];
|
|
9414
|
+
U3[y] = p2 * d2, c2[y] = p2 * p2, s2[y] = d2 * d2;
|
|
9422
9415
|
}
|
|
9423
9416
|
let q4 = new Float32Array(o2 * t);
|
|
9424
|
-
S2(c2, G, q4, o2, t, x, e), S2(
|
|
9425
|
-
let
|
|
9417
|
+
S2(c2, G, q4, o2, t, x, e), S2(s2, H3, q4, o2, t, x, e), S2(U3, I2, q4, o2, t, x, e);
|
|
9418
|
+
let w = new Float32Array(v.length);
|
|
9426
9419
|
for (let y = 0; y < v.length; y++) {
|
|
9427
9420
|
let p2 = v[y], d2 = O2[y], W2 = p2 * p2, X2 = d2 * d2, Y = p2 * d2, $ = G[y] - W2, K2 = H3[y] - X2, _2 = I2[y] - Y, j3 = (2 * Y + b) * (2 * _2 + B), J = (W2 + X2 + b) * ($ + K2 + B);
|
|
9428
|
-
|
|
9421
|
+
w[y] = j3 / J;
|
|
9429
9422
|
}
|
|
9430
9423
|
if (l) {
|
|
9431
9424
|
let y = o2 - e + 1, p2 = t - e + 1;
|
|
9432
|
-
Z(l,
|
|
9425
|
+
Z(l, w, y, p2, r, n2);
|
|
9433
9426
|
}
|
|
9434
9427
|
let L3 = 0;
|
|
9435
|
-
for (let y = 0; y <
|
|
9436
|
-
return L3 /
|
|
9428
|
+
for (let y = 0; y < w.length; y++) L3 += w[y];
|
|
9429
|
+
return L3 / w.length;
|
|
9437
9430
|
}
|
|
9438
9431
|
function P2(f2, M) {
|
|
9439
9432
|
let l = `${f2}_${M}`, r = D2.get(l);
|
|
@@ -9448,72 +9441,72 @@ function P2(f2, M) {
|
|
|
9448
9441
|
}
|
|
9449
9442
|
function S2(f2, M, l, r, n2, u, e) {
|
|
9450
9443
|
let A = Math.floor(e / 2);
|
|
9451
|
-
for (let
|
|
9452
|
-
let o2 =
|
|
9444
|
+
for (let s2 = 0; s2 < n2; s2++) {
|
|
9445
|
+
let o2 = s2 * r;
|
|
9453
9446
|
for (let t = 0; t < A; t++) {
|
|
9454
|
-
let
|
|
9447
|
+
let m2 = 0;
|
|
9455
9448
|
for (let F2 = 0; F2 < e; F2++) {
|
|
9456
9449
|
let x = t + F2 - A, b = Math.max(0, Math.min(r - 1, x));
|
|
9457
|
-
|
|
9450
|
+
m2 += f2[o2 + b] * u[F2];
|
|
9458
9451
|
}
|
|
9459
|
-
l[o2 + t] =
|
|
9452
|
+
l[o2 + t] = m2;
|
|
9460
9453
|
}
|
|
9461
9454
|
for (let t = A; t < r - A; t++) {
|
|
9462
|
-
let
|
|
9463
|
-
for (let x = 0; x < e; x++)
|
|
9464
|
-
l[o2 + t] =
|
|
9455
|
+
let m2 = 0, F2 = o2 + t - A;
|
|
9456
|
+
for (let x = 0; x < e; x++) m2 += f2[F2 + x] * u[x];
|
|
9457
|
+
l[o2 + t] = m2;
|
|
9465
9458
|
}
|
|
9466
9459
|
for (let t = r - A; t < r; t++) {
|
|
9467
|
-
let
|
|
9460
|
+
let m2 = 0;
|
|
9468
9461
|
for (let F2 = 0; F2 < e; F2++) {
|
|
9469
9462
|
let x = t + F2 - A, b = Math.max(0, Math.min(r - 1, x));
|
|
9470
|
-
|
|
9463
|
+
m2 += f2[o2 + b] * u[F2];
|
|
9471
9464
|
}
|
|
9472
|
-
l[o2 + t] =
|
|
9465
|
+
l[o2 + t] = m2;
|
|
9473
9466
|
}
|
|
9474
9467
|
}
|
|
9475
9468
|
let a2 = r - e + 1, i2 = n2 - e + 1, c2 = 0;
|
|
9476
|
-
for (let
|
|
9477
|
-
let t = 0,
|
|
9469
|
+
for (let s2 = 0; s2 < i2; s2++) for (let o2 = 0; o2 < a2; o2++) {
|
|
9470
|
+
let t = 0, m2 = o2 + A;
|
|
9478
9471
|
for (let F2 = 0; F2 < e; F2++) {
|
|
9479
|
-
let x =
|
|
9480
|
-
t += l[x * r +
|
|
9472
|
+
let x = s2 + F2;
|
|
9473
|
+
t += l[x * r + m2] * u[F2];
|
|
9481
9474
|
}
|
|
9482
9475
|
M[c2++] = t;
|
|
9483
9476
|
}
|
|
9484
9477
|
}
|
|
9485
9478
|
function Q(f2, M, l, r, n2) {
|
|
9486
9479
|
let u = new Float32Array(n2), e = 1 / n2;
|
|
9487
|
-
for (let
|
|
9480
|
+
for (let m2 = 0; m2 < n2; m2++) u[m2] = e;
|
|
9488
9481
|
let A = new Float32Array(l * r), a2 = new Float32Array(l * r);
|
|
9489
9482
|
E(f2, a2, A, l, r, u, n2);
|
|
9490
9483
|
let i2 = new Float32Array(l * r);
|
|
9491
9484
|
E(M, i2, A, l, r, u, n2);
|
|
9492
|
-
let c2 = Math.floor(l / n2),
|
|
9493
|
-
for (let
|
|
9494
|
-
let F2 =
|
|
9485
|
+
let c2 = Math.floor(l / n2), s2 = Math.floor(r / n2), o2 = new Float32Array(c2 * s2), t = new Float32Array(c2 * s2);
|
|
9486
|
+
for (let m2 = 0; m2 < s2; m2++) {
|
|
9487
|
+
let F2 = m2 * n2 * l, x = m2 * c2;
|
|
9495
9488
|
for (let b = 0; b < c2; b++) o2[x + b] = a2[F2 + b * n2], t[x + b] = i2[F2 + b * n2];
|
|
9496
9489
|
}
|
|
9497
|
-
return { img1: o2, img2: t, width: c2, height:
|
|
9490
|
+
return { img1: o2, img2: t, width: c2, height: s2 };
|
|
9498
9491
|
}
|
|
9499
9492
|
function E(f2, M, l, r, n2, u, e) {
|
|
9500
9493
|
let A = Math.floor(e / 2);
|
|
9501
9494
|
for (let a2 = 0; a2 < n2; a2++) {
|
|
9502
9495
|
let i2 = a2 * r;
|
|
9503
9496
|
for (let c2 = 0; c2 < r; c2++) {
|
|
9504
|
-
let
|
|
9497
|
+
let s2 = 0;
|
|
9505
9498
|
for (let o2 = 0; o2 < e; o2++) {
|
|
9506
9499
|
let t = c2 + o2 - A;
|
|
9507
|
-
t < 0 ? t = -t : t >= r && (t = 2 * r - t - 2), t = Math.max(0, Math.min(r - 1, t)),
|
|
9500
|
+
t < 0 ? t = -t : t >= r && (t = 2 * r - t - 2), t = Math.max(0, Math.min(r - 1, t)), s2 += f2[i2 + t] * u[o2];
|
|
9508
9501
|
}
|
|
9509
|
-
l[i2 + c2] =
|
|
9502
|
+
l[i2 + c2] = s2;
|
|
9510
9503
|
}
|
|
9511
9504
|
}
|
|
9512
9505
|
for (let a2 = 0; a2 < n2; a2++) for (let i2 = 0; i2 < r; i2++) {
|
|
9513
9506
|
let c2 = 0;
|
|
9514
|
-
for (let
|
|
9515
|
-
let o2 = a2 +
|
|
9516
|
-
o2 < 0 ? o2 = -o2 : o2 >= n2 && (o2 = 2 * n2 - o2 - 2), o2 = Math.max(0, Math.min(n2 - 1, o2)), c2 += l[o2 * r + i2] * u[
|
|
9507
|
+
for (let s2 = 0; s2 < e; s2++) {
|
|
9508
|
+
let o2 = a2 + s2 - A;
|
|
9509
|
+
o2 < 0 ? o2 = -o2 : o2 >= n2 && (o2 = 2 * n2 - o2 - 2), o2 = Math.max(0, Math.min(n2 - 1, o2)), c2 += l[o2 * r + i2] * u[s2];
|
|
9517
9510
|
}
|
|
9518
9511
|
M[a2 * r + i2] = c2;
|
|
9519
9512
|
}
|
|
@@ -9521,8 +9514,8 @@ function E(f2, M, l, r, n2, u, e) {
|
|
|
9521
9514
|
function Z(f2, M, l, r, n2, u) {
|
|
9522
9515
|
let e = n2 / l, A = u / r;
|
|
9523
9516
|
for (let a2 = 0; a2 < u; a2++) for (let i2 = 0; i2 < n2; i2++) {
|
|
9524
|
-
let c2 = Math.min(Math.floor(i2 / e), l - 1),
|
|
9525
|
-
f2[
|
|
9517
|
+
let c2 = Math.min(Math.floor(i2 / e), l - 1), s2 = Math.min(Math.floor(a2 / A), r - 1), o2 = M[s2 * l + c2], t = Math.floor(Math.max(0, Math.min(1, o2)) * 255), m2 = (a2 * n2 + i2) * 4;
|
|
9518
|
+
f2[m2] = t, f2[m2 + 1] = t, f2[m2 + 2] = t, f2[m2 + 3] = 255;
|
|
9526
9519
|
}
|
|
9527
9520
|
}
|
|
9528
9521
|
var D2, z;
|
|
@@ -9684,15 +9677,15 @@ var init_ssim2 = __esm({
|
|
|
9684
9677
|
function I(a2, f2, n2) {
|
|
9685
9678
|
let r = new Float32Array(f2 * n2), t = 0;
|
|
9686
9679
|
for (let y = 0; y < a2.length; y += 4) {
|
|
9687
|
-
let
|
|
9688
|
-
r[t++] = 0.298936 *
|
|
9680
|
+
let m2 = a2[y], p2 = a2[y + 1], s2 = a2[y + 2];
|
|
9681
|
+
r[t++] = 0.298936 * m2 + 0.587043 * p2 + 0.114021 * s2;
|
|
9689
9682
|
}
|
|
9690
9683
|
return r;
|
|
9691
9684
|
}
|
|
9692
9685
|
function K(a2, f2, n2, r, t, y = {}) {
|
|
9693
|
-
let { windowSize:
|
|
9686
|
+
let { windowSize: m2 = 11, k1: p2 = 0.01, k2: s2 = 0.03, bitDepth: c2 = 8, level: e = 5, weight: u = [0.0448, 0.2856, 0.3001, 0.2363, 0.1333], method: o2 = "product" } = y, l = I(a2, r, t), A = I(f2, r, t), x = r, S3 = t, d2 = [], B = [], C3;
|
|
9694
9687
|
for (let i2 = 0; i2 < e; i2++) {
|
|
9695
|
-
let b = L2(l, A, x, S3,
|
|
9688
|
+
let b = L2(l, A, x, S3, m2, p2, s2, c2);
|
|
9696
9689
|
if (d2.push(b.mssim), B.push(b.mcs), i2 === e - 1 && n2 && (C3 = b.ssimMap), i2 < e - 1) {
|
|
9697
9690
|
let M = E2(l, A, x, S3);
|
|
9698
9691
|
l = M.img1, A = M.img2, x = M.width, S3 = M.height;
|
|
@@ -9708,8 +9701,8 @@ function K(a2, f2, n2, r, t, y = {}) {
|
|
|
9708
9701
|
return b += d2[e - 1] * i2[e - 1], b;
|
|
9709
9702
|
}
|
|
9710
9703
|
}
|
|
9711
|
-
function L2(a2, f2, n2, r, t, y,
|
|
9712
|
-
let
|
|
9704
|
+
function L2(a2, f2, n2, r, t, y, m2, p2) {
|
|
9705
|
+
let s2 = 2 ** p2 - 1, c2 = (y * s2) ** 2, e = (m2 * s2) ** 2, u = V2(t, 1.5), o2 = new Float32Array(n2 * r), l = new Float32Array(n2 * r), A = new Float32Array(n2 * r), x = new Float32Array(n2 * r), S3 = new Float32Array(n2 * r), d2 = new Float32Array(n2 * r), B = new Float32Array(n2 * r);
|
|
9713
9706
|
q3(a2, o2, d2, n2, r, u, t), q3(f2, l, d2, n2, r, u, t);
|
|
9714
9707
|
let C3 = new Float32Array(n2 * r), i2 = new Float32Array(n2 * r), b = new Float32Array(n2 * r), M = a2.length;
|
|
9715
9708
|
for (let F2 = 0; F2 < M; F2++) {
|
|
@@ -9719,7 +9712,7 @@ function L2(a2, f2, n2, r, t, y, m, p2) {
|
|
|
9719
9712
|
q3(C3, A, d2, n2, r, u, t), q3(i2, x, d2, n2, r, u, t), q3(b, S3, B, n2, r, u, t);
|
|
9720
9713
|
let D3 = 0, G = 0, O2 = new Float32Array(o2.length);
|
|
9721
9714
|
for (let F2 = 0; F2 < o2.length; F2++) {
|
|
9722
|
-
let v = o2[F2], U3 = l[F2], g2 = v * v,
|
|
9715
|
+
let v = o2[F2], U3 = l[F2], g2 = v * v, w = U3 * U3, R = v * U3, Y = A[F2] - g2, _2 = x[F2] - w, $ = S3[F2] - R, k = (2 * R + c2) / (g2 + w + c2), T = (2 * $ + e) / (Y + _2 + e), W2 = k * T;
|
|
9723
9716
|
O2[F2] = W2, D3 += W2, G += T;
|
|
9724
9717
|
}
|
|
9725
9718
|
return { mssim: D3 / o2.length, mcs: G / o2.length, ssimMap: O2 };
|
|
@@ -9730,49 +9723,49 @@ function V2(a2, f2) {
|
|
|
9730
9723
|
}
|
|
9731
9724
|
function j2(a2, f2) {
|
|
9732
9725
|
let n2 = new Float32Array(a2), r = (a2 - 1) / 2, t = 2 * f2 * f2, y = 0;
|
|
9733
|
-
for (let
|
|
9734
|
-
let p2 =
|
|
9735
|
-
n2[
|
|
9726
|
+
for (let m2 = 0; m2 < a2; m2++) {
|
|
9727
|
+
let p2 = m2 - r, s2 = Math.exp(-(p2 * p2) / t);
|
|
9728
|
+
n2[m2] = s2, y += s2;
|
|
9736
9729
|
}
|
|
9737
|
-
for (let
|
|
9730
|
+
for (let m2 = 0; m2 < a2; m2++) n2[m2] /= y;
|
|
9738
9731
|
return n2;
|
|
9739
9732
|
}
|
|
9740
|
-
function q3(a2, f2, n2, r, t, y,
|
|
9741
|
-
let p2 = Math.floor(
|
|
9742
|
-
for (let
|
|
9743
|
-
let c2 =
|
|
9733
|
+
function q3(a2, f2, n2, r, t, y, m2) {
|
|
9734
|
+
let p2 = Math.floor(m2 / 2);
|
|
9735
|
+
for (let s2 = 0; s2 < t; s2++) {
|
|
9736
|
+
let c2 = s2 * r;
|
|
9744
9737
|
for (let e = 0; e < r; e++) {
|
|
9745
9738
|
let u = 0;
|
|
9746
|
-
for (let o2 = 0; o2 <
|
|
9739
|
+
for (let o2 = 0; o2 < m2; o2++) {
|
|
9747
9740
|
let l = e + o2 - p2;
|
|
9748
9741
|
l < 0 ? l = -l : l >= r && (l = 2 * r - l - 2), l = Math.max(0, Math.min(r - 1, l)), u += a2[c2 + l] * y[o2];
|
|
9749
9742
|
}
|
|
9750
9743
|
n2[c2 + e] = u;
|
|
9751
9744
|
}
|
|
9752
9745
|
}
|
|
9753
|
-
for (let
|
|
9746
|
+
for (let s2 = 0; s2 < t; s2++) for (let c2 = 0; c2 < r; c2++) {
|
|
9754
9747
|
let e = 0;
|
|
9755
|
-
for (let u = 0; u <
|
|
9756
|
-
let o2 =
|
|
9748
|
+
for (let u = 0; u < m2; u++) {
|
|
9749
|
+
let o2 = s2 + u - p2;
|
|
9757
9750
|
o2 < 0 ? o2 = -o2 : o2 >= t && (o2 = 2 * t - o2 - 2), o2 = Math.max(0, Math.min(t - 1, o2)), e += n2[o2 * r + c2] * y[u];
|
|
9758
9751
|
}
|
|
9759
|
-
f2[
|
|
9752
|
+
f2[s2 * r + c2] = e;
|
|
9760
9753
|
}
|
|
9761
9754
|
}
|
|
9762
9755
|
function E2(a2, f2, n2, r) {
|
|
9763
|
-
let t = new Float32Array([0.5, 0.5]), y = new Float32Array(n2 * r),
|
|
9764
|
-
q3(a2, y, p2, n2, r, t, 2), q3(f2,
|
|
9756
|
+
let t = new Float32Array([0.5, 0.5]), y = new Float32Array(n2 * r), m2 = new Float32Array(n2 * r), p2 = new Float32Array(n2 * r), s2 = new Float32Array(n2 * r);
|
|
9757
|
+
q3(a2, y, p2, n2, r, t, 2), q3(f2, m2, s2, n2, r, t, 2);
|
|
9765
9758
|
let c2 = Math.floor(n2 / 2), e = Math.floor(r / 2), u = new Float32Array(c2 * e), o2 = new Float32Array(c2 * e);
|
|
9766
9759
|
for (let l = 0; l < e; l++) for (let A = 0; A < c2; A++) {
|
|
9767
9760
|
let x = l * 2 * n2 + A * 2, S3 = l * c2 + A;
|
|
9768
|
-
u[S3] = y[x], o2[S3] =
|
|
9761
|
+
u[S3] = y[x], o2[S3] = m2[x];
|
|
9769
9762
|
}
|
|
9770
9763
|
return { img1: u, img2: o2, width: c2, height: e };
|
|
9771
9764
|
}
|
|
9772
9765
|
function H2(a2, f2, n2, r, t, y) {
|
|
9773
|
-
let
|
|
9774
|
-
for (let
|
|
9775
|
-
let e = Math.min(Math.floor(c2 /
|
|
9766
|
+
let m2 = t / n2, p2 = y / r;
|
|
9767
|
+
for (let s2 = 0; s2 < y; s2++) for (let c2 = 0; c2 < t; c2++) {
|
|
9768
|
+
let e = Math.min(Math.floor(c2 / m2), n2 - 1), u = Math.min(Math.floor(s2 / p2), r - 1), o2 = f2[u * n2 + e], l = Math.floor(Math.max(0, Math.min(1, o2)) * 255), A = (s2 * t + c2) * 4;
|
|
9776
9769
|
a2[A] = l, a2[A + 1] = l, a2[A + 2] = l, a2[A + 3] = 255;
|
|
9777
9770
|
}
|
|
9778
9771
|
}
|
|
@@ -9934,43 +9927,43 @@ var init_msssim2 = __esm({
|
|
|
9934
9927
|
// ../ssim/dist/hitchhikers-ssim.mjs
|
|
9935
9928
|
function p(o2, a2, c2) {
|
|
9936
9929
|
let n2 = new Float32Array(a2 * c2), r = 0;
|
|
9937
|
-
for (let
|
|
9938
|
-
let t = o2[
|
|
9930
|
+
for (let s2 = 0; s2 < o2.length; s2 += 4) {
|
|
9931
|
+
let t = o2[s2], e = o2[s2 + 1], u = o2[s2 + 2];
|
|
9939
9932
|
n2[r++] = 0.298936 * t + 0.587043 * e + 0.114021 * u;
|
|
9940
9933
|
}
|
|
9941
9934
|
return n2;
|
|
9942
9935
|
}
|
|
9943
|
-
function
|
|
9944
|
-
let { windowSize: t = 11, windowStride: e = t, k1: u = 0.01, k2: i2 = 0.03, L: d2 = 255, covPooling: v = true } =
|
|
9936
|
+
function h(o2, a2, c2, n2, r, s2 = {}) {
|
|
9937
|
+
let { windowSize: t = 11, windowStride: e = t, k1: u = 0.01, k2: i2 = 0.03, L: d2 = 255, covPooling: v = true } = s2, g2 = p(o2, n2, r), A = p(a2, n2, r), y = (u * d2) ** 2, O2 = (i2 * d2) ** 2, Y = F(g2, n2, r), z2 = F(A, n2, r), P4 = new Float32Array(n2 * r), G = new Float32Array(n2 * r), H3 = new Float32Array(n2 * r);
|
|
9945
9938
|
for (let l = 0; l < g2.length; l++) {
|
|
9946
|
-
let
|
|
9947
|
-
P4[l] =
|
|
9939
|
+
let m2 = g2[l], f2 = A[l];
|
|
9940
|
+
P4[l] = m2 * m2, G[l] = f2 * f2, H3[l] = m2 * f2;
|
|
9948
9941
|
}
|
|
9949
9942
|
let D3 = F(P4, n2, r), V3 = F(G, n2, r), j3 = F(H3, n2, r), M = Math.floor((n2 - t) / e) + 1, I2 = Math.floor((r - t) / e) + 1, S3 = new Float32Array(M * I2), x = t * t, E3 = 0;
|
|
9950
9943
|
for (let l = 0; l < I2; l++) {
|
|
9951
|
-
let
|
|
9944
|
+
let m2 = l * e, f2 = m2 + t;
|
|
9952
9945
|
for (let k = 0; k < M; k++) {
|
|
9953
|
-
let b = k * e, q4 = b + t, J = U2(Y, b,
|
|
9954
|
-
S3[E3++] = $ /
|
|
9946
|
+
let b = k * e, q4 = b + t, J = U2(Y, b, m2, q4, f2, n2), K2 = U2(z2, b, m2, q4, f2, n2), N3 = U2(D3, b, m2, q4, f2, n2), Q2 = U2(V3, b, m2, q4, f2, n2), R = U2(j3, b, m2, q4, f2, n2), C3 = J / x, B = K2 / x, L3 = C3 * C3, T = B * B, X2 = C3 * B, W2 = N3 / x - L3, Z2 = Q2 / x - T, _2 = R / x - X2, $ = (2 * X2 + y) * (2 * _2 + O2), w = (L3 + T + y) * (W2 + Z2 + O2);
|
|
9947
|
+
S3[E3++] = $ / w;
|
|
9955
9948
|
}
|
|
9956
9949
|
}
|
|
9957
9950
|
if (c2 && on2(c2, S3, M, I2, n2, r), v) return nn2(S3);
|
|
9958
9951
|
{
|
|
9959
9952
|
let l = 0;
|
|
9960
|
-
for (let
|
|
9953
|
+
for (let m2 = 0; m2 < S3.length; m2++) l += S3[m2];
|
|
9961
9954
|
return l / S3.length;
|
|
9962
9955
|
}
|
|
9963
9956
|
}
|
|
9964
9957
|
function F(o2, a2, c2) {
|
|
9965
|
-
let n2 = a2 + 1, r = c2 + 1,
|
|
9958
|
+
let n2 = a2 + 1, r = c2 + 1, s2 = new Float64Array(n2 * r);
|
|
9966
9959
|
for (let t = 1; t <= c2; t++) for (let e = 1; e <= a2; e++) {
|
|
9967
9960
|
let u = (t - 1) * a2 + (e - 1), i2 = t * n2 + e;
|
|
9968
|
-
|
|
9961
|
+
s2[i2] = o2[u] + s2[(t - 1) * n2 + e] + s2[t * n2 + (e - 1)] - s2[(t - 1) * n2 + (e - 1)];
|
|
9969
9962
|
}
|
|
9970
|
-
return
|
|
9963
|
+
return s2;
|
|
9971
9964
|
}
|
|
9972
|
-
function U2(o2, a2, c2, n2, r,
|
|
9973
|
-
let t =
|
|
9965
|
+
function U2(o2, a2, c2, n2, r, s2) {
|
|
9966
|
+
let t = s2 + 1;
|
|
9974
9967
|
return o2[r * t + n2] - o2[c2 * t + n2] - o2[r * t + a2] + o2[c2 * t + a2];
|
|
9975
9968
|
}
|
|
9976
9969
|
function nn2(o2) {
|
|
@@ -9981,12 +9974,12 @@ function nn2(o2) {
|
|
|
9981
9974
|
let u = o2[e] - c2;
|
|
9982
9975
|
n2 += u * u;
|
|
9983
9976
|
}
|
|
9984
|
-
let r = n2 / o2.length,
|
|
9985
|
-
return 1 - (c2 > 0 ?
|
|
9977
|
+
let r = n2 / o2.length, s2 = Math.sqrt(r);
|
|
9978
|
+
return 1 - (c2 > 0 ? s2 / c2 : 0);
|
|
9986
9979
|
}
|
|
9987
|
-
function on2(o2, a2, c2, n2, r,
|
|
9988
|
-
let t = r / c2, e =
|
|
9989
|
-
for (let u = 0; u <
|
|
9980
|
+
function on2(o2, a2, c2, n2, r, s2) {
|
|
9981
|
+
let t = r / c2, e = s2 / n2;
|
|
9982
|
+
for (let u = 0; u < s2; u++) for (let i2 = 0; i2 < r; i2++) {
|
|
9990
9983
|
let d2 = Math.min(Math.floor(i2 / t), c2 - 1), v = Math.min(Math.floor(u / e), n2 - 1), g2 = a2[v * c2 + d2], A = Math.floor(Math.max(0, Math.min(1, g2)) * 255), y = (u * r + i2) * 4;
|
|
9991
9984
|
o2[y] = A, o2[y + 1] = A, o2[y + 2] = A, o2[y + 3] = 255;
|
|
9992
9985
|
}
|
|
@@ -9995,7 +9988,7 @@ var en;
|
|
|
9995
9988
|
var init_hitchhikers_ssim = __esm({
|
|
9996
9989
|
"../ssim/dist/hitchhikers-ssim.mjs"() {
|
|
9997
9990
|
"use strict";
|
|
9998
|
-
en =
|
|
9991
|
+
en = h;
|
|
9999
9992
|
}
|
|
10000
9993
|
});
|
|
10001
9994
|
|