emf-converter 4.5.2 → 4.6.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.
package/dist/index.mjs CHANGED
@@ -10,8 +10,8 @@ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require
10
10
  if (typeof require !== "undefined") return require.apply(this, arguments);
11
11
  throw Error('Dynamic require of "' + x + '" is not supported');
12
12
  });
13
- var __commonJS = (cb, mod2) => function __require2() {
14
- return mod2 || (0, cb[__getOwnPropNames(cb)[0]])((mod2 = { exports: {} }).exports, mod2), mod2.exports;
13
+ var __commonJS = (cb, mod3) => function __require2() {
14
+ return mod3 || (0, cb[__getOwnPropNames(cb)[0]])((mod3 = { exports: {} }).exports, mod3), mod3.exports;
15
15
  };
16
16
  var __copyProps = (to, from, except, desc) => {
17
17
  if (from && typeof from === "object" || typeof from === "function") {
@@ -21,13 +21,13 @@ var __copyProps = (to, from, except, desc) => {
21
21
  }
22
22
  return to;
23
23
  };
24
- var __toESM = (mod2, isNodeMode, target) => (target = mod2 != null ? __create(__getProtoOf(mod2)) : {}, __copyProps(
24
+ var __toESM = (mod3, isNodeMode, target) => (target = mod3 != null ? __create(__getProtoOf(mod3)) : {}, __copyProps(
25
25
  // If the importer is in node compatibility mode or this is not an ESM
26
26
  // file that has been converted to a CommonJS file using a Babel-
27
27
  // compatible transform (i.e. "__esModule" has not been set), then set
28
28
  // "default" to the CommonJS "module.exports" for node compatibility.
29
- !mod2 || !mod2.__esModule ? __defProp(target, "default", { value: mod2, enumerable: true }) : target,
30
- mod2
29
+ !mod3 || !mod3.__esModule ? __defProp(target, "default", { value: mod3, enumerable: true }) : target,
30
+ mod3
31
31
  ));
32
32
 
33
33
  // node_modules/jpeg-js/lib/encoder.js
@@ -618,10 +618,10 @@ var require_encoder = __commonJS({
618
618
  0.275899379
619
619
  ];
620
620
  var k = 0;
621
- for (var row = 0; row < 8; row++) {
621
+ for (var row2 = 0; row2 < 8; row2++) {
622
622
  for (var col = 0; col < 8; col++) {
623
- fdtbl_Y[k] = 1 / (YTable[ZigZag[k]] * aasf[row] * aasf[col] * 8);
624
- fdtbl_UV[k] = 1 / (UVTable[ZigZag[k]] * aasf[row] * aasf[col] * 8);
623
+ fdtbl_Y[k] = 1 / (YTable[ZigZag[k]] * aasf[row2] * aasf[col] * 8);
624
+ fdtbl_UV[k] = 1 / (UVTable[ZigZag[k]] * aasf[row2] * aasf[col] * 8);
625
625
  k++;
626
626
  }
627
627
  }
@@ -1006,20 +1006,20 @@ var require_encoder = __commonJS({
1006
1006
  var quadWidth = width * 4;
1007
1007
  var x, y = 0;
1008
1008
  var r, g, b;
1009
- var start, p, col, row, pos;
1009
+ var start, p, col, row2, pos;
1010
1010
  while (y < height) {
1011
1011
  x = 0;
1012
1012
  while (x < quadWidth) {
1013
1013
  start = quadWidth * y + x;
1014
1014
  p = start;
1015
1015
  col = -1;
1016
- row = 0;
1016
+ row2 = 0;
1017
1017
  for (pos = 0; pos < 64; pos++) {
1018
- row = pos >> 3;
1018
+ row2 = pos >> 3;
1019
1019
  col = (pos & 7) * 4;
1020
- p = start + row * quadWidth + col;
1021
- if (y + row >= height) {
1022
- p -= quadWidth * (y + 1 + row - height);
1020
+ p = start + row2 * quadWidth + col;
1021
+ if (y + row2 >= height) {
1022
+ p -= quadWidth * (y + 1 + row2 - height);
1023
1023
  }
1024
1024
  if (x + col >= quadWidth) {
1025
1025
  p -= x + col - quadWidth + 4;
@@ -1367,10 +1367,10 @@ var require_decoder = __commonJS({
1367
1367
  successiveACState = 0;
1368
1368
  }
1369
1369
  }
1370
- function decodeMcu(component2, decode4, mcu2, row, col) {
1370
+ function decodeMcu(component2, decode4, mcu2, row2, col) {
1371
1371
  var mcuRow = mcu2 / mcusPerLine | 0;
1372
1372
  var mcuCol = mcu2 % mcusPerLine;
1373
- var blockRow = mcuRow * component2.v + row;
1373
+ var blockRow = mcuRow * component2.v + row2;
1374
1374
  var blockCol = mcuCol * component2.h + col;
1375
1375
  if (component2.blocks[blockRow] === void 0 && opts.tolerantDecoding)
1376
1376
  return;
@@ -1465,27 +1465,27 @@ var require_decoder = __commonJS({
1465
1465
  for (i2 = 0; i2 < 64; i2++)
1466
1466
  p[i2] = zz[i2] * qt[i2];
1467
1467
  for (i2 = 0; i2 < 8; ++i2) {
1468
- var row = 8 * i2;
1469
- if (p[1 + row] == 0 && p[2 + row] == 0 && p[3 + row] == 0 && p[4 + row] == 0 && p[5 + row] == 0 && p[6 + row] == 0 && p[7 + row] == 0) {
1470
- t = dctSqrt2 * p[0 + row] + 512 >> 10;
1471
- p[0 + row] = t;
1472
- p[1 + row] = t;
1473
- p[2 + row] = t;
1474
- p[3 + row] = t;
1475
- p[4 + row] = t;
1476
- p[5 + row] = t;
1477
- p[6 + row] = t;
1478
- p[7 + row] = t;
1468
+ var row2 = 8 * i2;
1469
+ if (p[1 + row2] == 0 && p[2 + row2] == 0 && p[3 + row2] == 0 && p[4 + row2] == 0 && p[5 + row2] == 0 && p[6 + row2] == 0 && p[7 + row2] == 0) {
1470
+ t = dctSqrt2 * p[0 + row2] + 512 >> 10;
1471
+ p[0 + row2] = t;
1472
+ p[1 + row2] = t;
1473
+ p[2 + row2] = t;
1474
+ p[3 + row2] = t;
1475
+ p[4 + row2] = t;
1476
+ p[5 + row2] = t;
1477
+ p[6 + row2] = t;
1478
+ p[7 + row2] = t;
1479
1479
  continue;
1480
1480
  }
1481
- v0 = dctSqrt2 * p[0 + row] + 128 >> 8;
1482
- v1 = dctSqrt2 * p[4 + row] + 128 >> 8;
1483
- v2 = p[2 + row];
1484
- v3 = p[6 + row];
1485
- v4 = dctSqrt1d2 * (p[1 + row] - p[7 + row]) + 128 >> 8;
1486
- v7 = dctSqrt1d2 * (p[1 + row] + p[7 + row]) + 128 >> 8;
1487
- v5 = p[3 + row] << 4;
1488
- v6 = p[5 + row] << 4;
1481
+ v0 = dctSqrt2 * p[0 + row2] + 128 >> 8;
1482
+ v1 = dctSqrt2 * p[4 + row2] + 128 >> 8;
1483
+ v2 = p[2 + row2];
1484
+ v3 = p[6 + row2];
1485
+ v4 = dctSqrt1d2 * (p[1 + row2] - p[7 + row2]) + 128 >> 8;
1486
+ v7 = dctSqrt1d2 * (p[1 + row2] + p[7 + row2]) + 128 >> 8;
1487
+ v5 = p[3 + row2] << 4;
1488
+ v6 = p[5 + row2] << 4;
1489
1489
  t = v0 - v1 + 1 >> 1;
1490
1490
  v0 = v0 + v1 + 1 >> 1;
1491
1491
  v1 = t;
@@ -1510,14 +1510,14 @@ var require_decoder = __commonJS({
1510
1510
  t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12;
1511
1511
  v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12;
1512
1512
  v6 = t;
1513
- p[0 + row] = v0 + v7;
1514
- p[7 + row] = v0 - v7;
1515
- p[1 + row] = v1 + v6;
1516
- p[6 + row] = v1 - v6;
1517
- p[2 + row] = v2 + v5;
1518
- p[5 + row] = v2 - v5;
1519
- p[3 + row] = v3 + v4;
1520
- p[4 + row] = v3 - v4;
1513
+ p[0 + row2] = v0 + v7;
1514
+ p[7 + row2] = v0 - v7;
1515
+ p[1 + row2] = v1 + v6;
1516
+ p[6 + row2] = v1 - v6;
1517
+ p[2 + row2] = v2 + v5;
1518
+ p[5 + row2] = v2 - v5;
1519
+ p[3 + row2] = v3 + v4;
1520
+ p[4 + row2] = v3 - v4;
1521
1521
  }
1522
1522
  for (i2 = 0; i2 < 8; ++i2) {
1523
1523
  var col = i2;
@@ -1650,10 +1650,10 @@ var require_decoder = __commonJS({
1650
1650
  var blocks = [];
1651
1651
  requestMemoryAllocation(blocksToAllocate * 256);
1652
1652
  for (var i2 = 0; i2 < blocksPerColumnForMcu; i2++) {
1653
- var row = [];
1653
+ var row2 = [];
1654
1654
  for (var j2 = 0; j2 < blocksPerLineForMcu; j2++)
1655
- row.push(new Int32Array(64));
1656
- blocks.push(row);
1655
+ row2.push(new Int32Array(64));
1656
+ blocks.push(row2);
1657
1657
  }
1658
1658
  component2.blocksPerLine = blocksPerLine;
1659
1659
  component2.blocksPerColumn = blocksPerColumn;
@@ -7662,7 +7662,7 @@ var require_UTIF = __commonJS({
7662
7662
  514,
7663
7663
  513
7664
7664
  ];
7665
- var i, c, n, col, row, sum = 0;
7665
+ var i, c, n, col, row2, sum = 0;
7666
7666
  var ljpeg_diff = UTIF3.decode._ljpeg_diff;
7667
7667
  huff[0] = 15;
7668
7668
  for (n = i = 0; i < 18; i++) {
@@ -7670,12 +7670,12 @@ var require_UTIF = __commonJS({
7670
7670
  for (var c = 0; c < lim; c++) huff[++n] = tab[i];
7671
7671
  }
7672
7672
  for (col = raw_width; col--; )
7673
- for (row = 0; row < height + 1; row += 2) {
7674
- if (row == height) row = 1;
7673
+ for (row2 = 0; row2 < height + 1; row2 += 2) {
7674
+ if (row2 == height) row2 = 1;
7675
7675
  sum += ljpeg_diff(inp, prm, huff);
7676
- if (row < height) {
7676
+ if (row2 < height) {
7677
7677
  var clr = sum & 4095;
7678
- UTIF3.decode._putsF(tgt, (row * raw_width + col) * tiff_bps, clr << 16 - tiff_bps);
7678
+ UTIF3.decode._putsF(tgt, (row2 * raw_width + col) * tiff_bps, clr << 16 - tiff_bps);
7679
7679
  }
7680
7680
  }
7681
7681
  return;
@@ -7690,9 +7690,9 @@ var require_UTIF = __commonJS({
7690
7690
  return;
7691
7691
  }
7692
7692
  var pix = new Uint16Array(16);
7693
- var row, col, val, max, min, imax, imin, sh, bit, i, dp;
7693
+ var row2, col, val, max, min, imax, imin, sh, bit, i, dp;
7694
7694
  var data = new Uint8Array(raw_width + 1);
7695
- for (row = 0; row < height; row++) {
7695
+ for (row2 = 0; row2 < height; row2++) {
7696
7696
  for (var j = 0; j < raw_width; j++) data[j] = inp[off++];
7697
7697
  for (dp = 0, col = 0; col < raw_width - 30; dp += 16) {
7698
7698
  max = 2047 & (val = bin.readUint(data, dp));
@@ -7710,7 +7710,7 @@ var require_UTIF = __commonJS({
7710
7710
  }
7711
7711
  for (i = 0; i < 16; i++, col += 2) {
7712
7712
  var clr = pix[i] << 1;
7713
- UTIF3.decode._putsF(tgt, (row * raw_width + col) * tiff_bps, clr << 16 - tiff_bps);
7713
+ UTIF3.decode._putsF(tgt, (row2 * raw_width + col) * tiff_bps, clr << 16 - tiff_bps);
7714
7714
  }
7715
7715
  col -= col & 1 ? 1 : 31;
7716
7716
  }
@@ -7944,13 +7944,13 @@ var require_UTIF = __commonJS({
7944
7944
  if (csize > 1) step = Math.floor(max / (csize - 1));
7945
7945
  if (ver0 == 68 && ver1 == 32 && step > 0) split = bin.readShort(md, 562);
7946
7946
  var i;
7947
- var row, col;
7947
+ var row2, col;
7948
7948
  var len, shl, diff;
7949
7949
  var hpred = [0, 0];
7950
7950
  var huff = make_decoder(nikon_tree[tree]);
7951
7951
  var prm = [off, 0, 0, 0];
7952
- for (row = 0; row < height; row++) {
7953
- if (split && row == split) {
7952
+ for (row2 = 0; row2 < height; row2++) {
7953
+ if (split && row2 == split) {
7954
7954
  huff = make_decoder(nikon_tree[tree + 1]);
7955
7955
  }
7956
7956
  for (col = 0; col < raw_width; col++) {
@@ -7960,10 +7960,10 @@ var require_UTIF = __commonJS({
7960
7960
  diff = (getbithuff(data, prm, len - shl, 0) << 1) + 1 << shl >>> 1;
7961
7961
  if ((diff & 1 << len - 1) == 0)
7962
7962
  diff -= (1 << len) - (shl == 0 ? 1 : 0);
7963
- if (col < 2) hpred[col] = vpred[row & 1][col] += diff;
7963
+ if (col < 2) hpred[col] = vpred[row2 & 1][col] += diff;
7964
7964
  else hpred[col & 1] += diff;
7965
7965
  var clr = Math.min(Math.max(hpred[col & 1], 0), (1 << tiff_bps) - 1);
7966
- var bti = (row * raw_width + col) * tiff_bps;
7966
+ var bti = (row2 * raw_width + col) * tiff_bps;
7967
7967
  UTIF3.decode._putsF(tgt, bti, clr << 16 - tiff_bps);
7968
7968
  }
7969
7969
  }
@@ -9529,9 +9529,9 @@ function decodeMonoBits(view, bmiOffset, bitsOffset) {
9529
9529
  return null;
9530
9530
  }
9531
9531
  const bits = new Uint8Array(width * height);
9532
- for (let row = 0; row < height; row++) {
9533
- const y = heightRaw > 0 ? height - 1 - row : row;
9534
- const rowOff = bitsOffset + row * stride;
9532
+ for (let row2 = 0; row2 < height; row2++) {
9533
+ const y = heightRaw > 0 ? height - 1 - row2 : row2;
9534
+ const rowOff = bitsOffset + row2 * stride;
9535
9535
  for (let x = 0; x < width; x++) {
9536
9536
  bits[y * width + x] = view.getUint8(rowOff + (x >> 3)) >> 7 - (x & 7) & 1;
9537
9537
  }
@@ -10162,12 +10162,12 @@ function unfilter(raw, offset, stride, rows, bpp) {
10162
10162
  let prev = -1;
10163
10163
  for (let y = 0; y < rows; y++) {
10164
10164
  const filter = raw[offset];
10165
- const row = offset + 1;
10165
+ const row2 = offset + 1;
10166
10166
  for (let i = 0; i < stride; i++) {
10167
- const a = i >= bpp ? raw[row + i - bpp] : 0;
10167
+ const a = i >= bpp ? raw[row2 + i - bpp] : 0;
10168
10168
  const b = prev >= 0 ? raw[prev + i] : 0;
10169
10169
  const c = prev >= 0 && i >= bpp ? raw[prev + i - bpp] : 0;
10170
- let v = raw[row + i];
10170
+ let v = raw[row2 + i];
10171
10171
  switch (filter) {
10172
10172
  case 1:
10173
10173
  v += a;
@@ -10182,10 +10182,10 @@ function unfilter(raw, offset, stride, rows, bpp) {
10182
10182
  v += paeth(a, b, c);
10183
10183
  break;
10184
10184
  }
10185
- raw[row + i] = v & 255;
10185
+ raw[row2 + i] = v & 255;
10186
10186
  }
10187
- prev = row;
10188
- offset = row + stride;
10187
+ prev = row2;
10188
+ offset = row2 + stride;
10189
10189
  }
10190
10190
  return offset;
10191
10191
  }
@@ -10251,41 +10251,41 @@ async function decodePng(bytes) {
10251
10251
  const maxSample = (1 << depth) - 1;
10252
10252
  const keyGray = trns && colorType === 0 && trns.length >= 2 ? trns[0] << 8 | trns[1] : -1;
10253
10253
  const keyRgb = trns && colorType === 2 && trns.length >= 6 ? [trns[0] << 8 | trns[1], trns[2] << 8 | trns[3], trns[4] << 8 | trns[5]] : null;
10254
- const sampleAt = (row, index) => {
10254
+ const sampleAt = (row2, index) => {
10255
10255
  if (depth === 8) {
10256
- return raw[row + index];
10256
+ return raw[row2 + index];
10257
10257
  }
10258
10258
  if (depth === 16) {
10259
- return raw[row + index * 2] << 8 | raw[row + index * 2 + 1];
10259
+ return raw[row2 + index * 2] << 8 | raw[row2 + index * 2 + 1];
10260
10260
  }
10261
10261
  const bit = index * depth;
10262
- return raw[row + (bit >> 3)] >> 8 - depth - (bit & 7) & maxSample;
10262
+ return raw[row2 + (bit >> 3)] >> 8 - depth - (bit & 7) & maxSample;
10263
10263
  };
10264
10264
  const to8 = (v) => depth === 16 ? v >> 8 : depth === 8 ? v : Math.round(v * 255 / maxSample);
10265
- const writeRow = (row, count, y, x0, dx) => {
10265
+ const writeRow = (row2, count, y, x0, dx) => {
10266
10266
  for (let i = 0; i < count; i++) {
10267
10267
  const di = (y * width + x0 + i * dx) * 4;
10268
10268
  if (colorType === 3) {
10269
- const idx = sampleAt(row, i);
10269
+ const idx = sampleAt(row2, i);
10270
10270
  out[di] = palette[idx * 3] ?? 0;
10271
10271
  out[di + 1] = palette[idx * 3 + 1] ?? 0;
10272
10272
  out[di + 2] = palette[idx * 3 + 2] ?? 0;
10273
10273
  out[di + 3] = trns && idx < trns.length ? trns[idx] : 255;
10274
10274
  } else if (colorType === 0 || colorType === 4) {
10275
- const g = sampleAt(row, i * channels);
10275
+ const g = sampleAt(row2, i * channels);
10276
10276
  const v = to8(g);
10277
10277
  out[di] = v;
10278
10278
  out[di + 1] = v;
10279
10279
  out[di + 2] = v;
10280
- out[di + 3] = colorType === 4 ? to8(sampleAt(row, i * channels + 1)) : g === keyGray ? 0 : 255;
10280
+ out[di + 3] = colorType === 4 ? to8(sampleAt(row2, i * channels + 1)) : g === keyGray ? 0 : 255;
10281
10281
  } else {
10282
- const r = sampleAt(row, i * channels);
10283
- const g = sampleAt(row, i * channels + 1);
10284
- const b = sampleAt(row, i * channels + 2);
10282
+ const r = sampleAt(row2, i * channels);
10283
+ const g = sampleAt(row2, i * channels + 1);
10284
+ const b = sampleAt(row2, i * channels + 2);
10285
10285
  out[di] = to8(r);
10286
10286
  out[di + 1] = to8(g);
10287
10287
  out[di + 2] = to8(b);
10288
- out[di + 3] = colorType === 6 ? to8(sampleAt(row, i * channels + 3)) : keyRgb && r === keyRgb[0] && g === keyRgb[1] && b === keyRgb[2] ? 0 : 255;
10288
+ out[di + 3] = colorType === 6 ? to8(sampleAt(row2, i * channels + 3)) : keyRgb && r === keyRgb[0] && g === keyRgb[1] && b === keyRgb[2] ? 0 : 255;
10289
10289
  }
10290
10290
  }
10291
10291
  };
@@ -10584,13 +10584,13 @@ function idctBlock(coef, offset, quant, out, outOffset, stride, ws) {
10584
10584
  idct1d(vec, res);
10585
10585
  for (let r = 0; r < 8; r++) ws[r * 8 + col] = descale(res[r], CONST_BITS - PASS1_BITS);
10586
10586
  }
10587
- for (let row = 0; row < 8; row++) {
10587
+ for (let row2 = 0; row2 < 8; row2++) {
10588
10588
  let ac = 0;
10589
10589
  for (let c = 0; c < 8; c++) {
10590
- vec[c] = ws[row * 8 + c];
10590
+ vec[c] = ws[row2 * 8 + c];
10591
10591
  if (c) ac |= vec[c];
10592
10592
  }
10593
- const o = outOffset + row * stride;
10593
+ const o = outOffset + row2 * stride;
10594
10594
  if (!ac) {
10595
10595
  const x = descale(vec[0], PASS1_BITS + 3) + 128;
10596
10596
  const dc = x < 0 ? 0 : x > 255 ? 255 : x;
@@ -11038,7 +11038,7 @@ function decodeJpegTiff(bytes, page) {
11038
11038
  const x = block % columns * blockWidth, y = Math.floor(block / columns) * blockHeight;
11039
11039
  const copyWidth = Math.min(blockWidth, width - x), copyHeight = Math.min(blockHeight, height - y);
11040
11040
  if (decoded.width !== blockWidth || decoded.height < copyHeight || decoded.height > blockHeight) throw new Error("Invalid TIFF JPEG dimensions");
11041
- for (let row = 0; row < copyHeight; row++) result.set(decoded.data.subarray(row * decoded.width * 4, (row * decoded.width + copyWidth) * 4), ((y + row) * width + x) * 4);
11041
+ for (let row2 = 0; row2 < copyHeight; row2++) result.set(decoded.data.subarray(row2 * decoded.width * 4, (row2 * decoded.width + copyWidth) * 4), ((y + row2) * width + x) * 4);
11042
11042
  }
11043
11043
  return result;
11044
11044
  }
@@ -11196,11 +11196,11 @@ function filterScanlines(input, width, height) {
11196
11196
  const up = new Uint8Array(stride);
11197
11197
  const pae = new Uint8Array(stride);
11198
11198
  for (let y = 0; y < height; y++) {
11199
- const row = y * stride;
11200
- const prev = row - stride;
11199
+ const row2 = y * stride;
11200
+ const prev = row2 - stride;
11201
11201
  const o = y * (stride + 1);
11202
11202
  if (words && y > 0) {
11203
- const w0 = row >> 2;
11203
+ const w0 = row2 >> 2;
11204
11204
  const p0 = prev >> 2;
11205
11205
  let same = true;
11206
11206
  for (let k = 0; k < width; k++) {
@@ -11214,7 +11214,7 @@ function filterScanlines(input, width, height) {
11214
11214
  continue;
11215
11215
  }
11216
11216
  }
11217
- const none = data.subarray(row, row + stride);
11217
+ const none = data.subarray(row2, row2 + stride);
11218
11218
  const noneScore = score(none, stride);
11219
11219
  if (noneScore === 0) {
11220
11220
  out.set(none, o + 1);
@@ -11223,18 +11223,18 @@ function filterScanlines(input, width, height) {
11223
11223
  let subScore = 0;
11224
11224
  let upScore = 0;
11225
11225
  for (let i = 0; i < 4 && i < stride; i++) {
11226
- const x = data[row + i];
11226
+ const x = data[row2 + i];
11227
11227
  sub[i] = x;
11228
11228
  subScore += x < 128 ? x : 256 - x;
11229
11229
  }
11230
11230
  for (let i = 4; i < stride; i++) {
11231
- const v = data[row + i] - data[row + i - 4] & 255;
11231
+ const v = data[row2 + i] - data[row2 + i - 4] & 255;
11232
11232
  sub[i] = v;
11233
11233
  subScore += v < 128 ? v : 256 - v;
11234
11234
  }
11235
11235
  if (y > 0) {
11236
11236
  for (let i = 0; i < stride; i++) {
11237
- const v = data[row + i] - data[prev + i] & 255;
11237
+ const v = data[row2 + i] - data[prev + i] & 255;
11238
11238
  up[i] = v;
11239
11239
  upScore += v < 128 ? v : 256 - v;
11240
11240
  }
@@ -11257,10 +11257,10 @@ function filterScanlines(input, width, height) {
11257
11257
  }
11258
11258
  if (y > 0 && bestScore > stride >> 3) {
11259
11259
  for (let i = 0; i < stride; i++) {
11260
- const a = i >= 4 ? data[row + i - 4] : 0;
11260
+ const a = i >= 4 ? data[row2 + i - 4] : 0;
11261
11261
  const b = data[prev + i];
11262
11262
  const c = i >= 4 ? data[prev + i - 4] : 0;
11263
- pae[i] = data[row + i] - paeth2(a, b, c) & 255;
11263
+ pae[i] = data[row2 + i] - paeth2(a, b, c) & 255;
11264
11264
  }
11265
11265
  const paethScore = score(pae, stride);
11266
11266
  if (paethScore < bestScore) {
@@ -12464,19 +12464,19 @@ function accumulateLine(acc, mark, stride, rows, width, x0, y0, x1, y1) {
12464
12464
  if (top >= bottom) {
12465
12465
  return;
12466
12466
  }
12467
- const add = (row, cell, v) => {
12468
- const i = row * stride + cell;
12467
+ const add = (row2, cell, v) => {
12468
+ const i = row2 * stride + cell;
12469
12469
  acc[i] += v;
12470
12470
  if (!mark[i]) {
12471
12471
  mark[i] = 1;
12472
- touched[row].push(cell);
12472
+ touched[row2].push(cell);
12473
12473
  }
12474
12474
  };
12475
12475
  const dxdy = (x1 - x0) / (y1 - y0);
12476
12476
  let x = Math.min(width, Math.max(0, x0 + (top - y0) * dxdy));
12477
12477
  const rowEnd = Math.ceil(bottom);
12478
- for (let row = Math.floor(top); row < rowEnd; row++) {
12479
- const dy = Math.min(row + 1, bottom) - Math.max(row, top);
12478
+ for (let row2 = Math.floor(top); row2 < rowEnd; row2++) {
12479
+ const dy = Math.min(row2 + 1, bottom) - Math.max(row2, top);
12480
12480
  let xnext = x + dxdy * dy;
12481
12481
  if (xnext < 0) {
12482
12482
  xnext = 0;
@@ -12490,27 +12490,27 @@ function accumulateLine(acc, mark, stride, rows, width, x0, y0, x1, y1) {
12490
12490
  const hiCeil = Math.ceil(hi);
12491
12491
  if (hiCeil <= loFloor + 1) {
12492
12492
  const xmf = 0.5 * (x + xnext) - loFloor;
12493
- add(row, loFloor, d - d * xmf);
12494
- add(row, loFloor + 1, d * xmf);
12493
+ add(row2, loFloor, d - d * xmf);
12494
+ add(row2, loFloor + 1, d * xmf);
12495
12495
  } else {
12496
12496
  const s = 1 / (hi - lo);
12497
12497
  const x0f = lo - loFloor;
12498
12498
  const a0 = 0.5 * s * (1 - x0f) * (1 - x0f);
12499
12499
  const x1f = hi - hiCeil + 1;
12500
12500
  const am = 0.5 * s * x1f * x1f;
12501
- add(row, loFloor, d * a0);
12501
+ add(row2, loFloor, d * a0);
12502
12502
  if (hiCeil === loFloor + 2) {
12503
- add(row, loFloor + 1, d * (1 - a0 - am));
12503
+ add(row2, loFloor + 1, d * (1 - a0 - am));
12504
12504
  } else {
12505
12505
  const a1 = s * (1.5 - x0f);
12506
- add(row, loFloor + 1, d * (a1 - a0));
12506
+ add(row2, loFloor + 1, d * (a1 - a0));
12507
12507
  for (let xi = loFloor + 2; xi < hiCeil - 1; xi++) {
12508
- add(row, xi, d * s);
12508
+ add(row2, xi, d * s);
12509
12509
  }
12510
12510
  const a2 = a1 + (hiCeil - loFloor - 3) * s;
12511
- add(row, hiCeil - 1, d * (1 - a2 - am));
12511
+ add(row2, hiCeil - 1, d * (1 - a2 - am));
12512
12512
  }
12513
- add(row, hiCeil, d * am);
12513
+ add(row2, hiCeil, d * am);
12514
12514
  }
12515
12515
  x = xnext;
12516
12516
  }
@@ -12640,14 +12640,14 @@ function rasterizeRings(rings, rule, bounds, sink) {
12640
12640
  }
12641
12641
  accumulateLine(acc, mark, stride, rows, width, segs[o], ya, segs[o + 2], yb);
12642
12642
  }
12643
- for (let row = 0; row < rows; row++) {
12644
- const cells = touched[row];
12643
+ for (let row2 = 0; row2 < rows; row2++) {
12644
+ const cells = touched[row2];
12645
12645
  if (cells.length === 0) {
12646
12646
  continue;
12647
12647
  }
12648
12648
  cells.sort(byNumber);
12649
- const base = row * stride;
12650
- const y = bandTop + row;
12649
+ const base = row2 * stride;
12650
+ const y = bandTop + row2;
12651
12651
  let sum = 0;
12652
12652
  for (let k = 0; k < cells.length; k++) {
12653
12653
  const cell = cells[k];
@@ -13788,8 +13788,8 @@ var SoftwareRasterCanvas = class {
13788
13788
  readRgba(x, y, w, h) {
13789
13789
  const out = new Uint8ClampedArray(Math.max(0, w * h * 4));
13790
13790
  const { width, height, data } = this;
13791
- for (let row = 0; row < h; row++) {
13792
- const sy = y + row;
13791
+ for (let row2 = 0; row2 < h; row2++) {
13792
+ const sy = y + row2;
13793
13793
  if (sy < 0 || sy >= height) {
13794
13794
  continue;
13795
13795
  }
@@ -13799,7 +13799,7 @@ var SoftwareRasterCanvas = class {
13799
13799
  continue;
13800
13800
  }
13801
13801
  const si = (sy * width + sx) * 4;
13802
- const di = (row * w + col) * 4;
13802
+ const di = (row2 * w + col) * 4;
13803
13803
  const a = data[si + 3];
13804
13804
  if (a === 255) {
13805
13805
  out[di] = data[si];
@@ -13808,10 +13808,10 @@ var SoftwareRasterCanvas = class {
13808
13808
  out[di + 3] = 255;
13809
13809
  } else if (a !== 0) {
13810
13810
  const table = unpremultiplyTable();
13811
- const row2 = a << 8;
13812
- out[di] = table[row2 | data[si]];
13813
- out[di + 1] = table[row2 | data[si + 1]];
13814
- out[di + 2] = table[row2 | data[si + 2]];
13811
+ const row3 = a << 8;
13812
+ out[di] = table[row3 | data[si]];
13813
+ out[di + 1] = table[row3 | data[si + 1]];
13814
+ out[di + 2] = table[row3 | data[si + 2]];
13815
13815
  out[di + 3] = a;
13816
13816
  }
13817
13817
  }
@@ -13828,8 +13828,8 @@ var SoftwareRasterCanvas = class {
13828
13828
  return null;
13829
13829
  }
13830
13830
  let out = null;
13831
- for (let row = 0; row < h; row++) {
13832
- const sy = y + row;
13831
+ for (let row2 = 0; row2 < h; row2++) {
13832
+ const sy = y + row2;
13833
13833
  if (sy < 0 || sy >= this.height) {
13834
13834
  continue;
13835
13835
  }
@@ -13837,7 +13837,7 @@ var SoftwareRasterCanvas = class {
13837
13837
  const sx = x + col;
13838
13838
  if (sx >= 0 && sx < this.width && u[sy * this.width + sx]) {
13839
13839
  out ?? (out = new Uint8Array(w * h));
13840
- out[row * w + col] = 1;
13840
+ out[row2 * w + col] = 1;
13841
13841
  }
13842
13842
  }
13843
13843
  }
@@ -14535,9 +14535,9 @@ var SoftwareRasterContext = class {
14535
14535
  return null;
14536
14536
  }
14537
14537
  const out = new Uint8Array(Math.max(0, w * h));
14538
- for (let row = 0; row < h; row++) {
14538
+ for (let row2 = 0; row2 < h; row2++) {
14539
14539
  for (let col = 0; col < w; col++) {
14540
- out[row * w + col] = clipAt(clip, x + col, y + row);
14540
+ out[row2 * w + col] = clipAt(clip, x + col, y + row2);
14541
14541
  }
14542
14542
  }
14543
14543
  return out;
@@ -14548,8 +14548,8 @@ var SoftwareRasterContext = class {
14548
14548
  }
14549
14549
  const polys = this.flattened();
14550
14550
  const key = `${y}`;
14551
- let row = this.rowCache;
14552
- if (!row || row.key !== key) {
14551
+ let row2 = this.rowCache;
14552
+ if (!row2 || row2.key !== key) {
14553
14553
  const xs = [];
14554
14554
  const dirs = [];
14555
14555
  for (const poly of polys) {
@@ -14579,23 +14579,23 @@ var SoftwareRasterContext = class {
14579
14579
  for (let k = order.length - 1; k >= 0; k--) {
14580
14580
  suffix[k] = suffix[k + 1] + dirs[order[k]];
14581
14581
  }
14582
- row = { key, xs: sortedX, suffixWinding: suffix, count: order.length };
14583
- this.rowCache = row;
14582
+ row2 = { key, xs: sortedX, suffixWinding: suffix, count: order.length };
14583
+ this.rowCache = row2;
14584
14584
  }
14585
14585
  let lo = 0;
14586
- let hi = row.count;
14586
+ let hi = row2.count;
14587
14587
  while (lo < hi) {
14588
14588
  const mid = lo + hi >> 1;
14589
- if (row.xs[mid] > x) {
14589
+ if (row2.xs[mid] > x) {
14590
14590
  hi = mid;
14591
14591
  } else {
14592
14592
  lo = mid + 1;
14593
14593
  }
14594
14594
  }
14595
14595
  if (fillRule === "evenodd") {
14596
- return (row.count - lo & 1) === 1;
14596
+ return (row2.count - lo & 1) === 1;
14597
14597
  }
14598
- return row.suffixWinding[lo] !== 0;
14598
+ return row2.suffixWinding[lo] !== 0;
14599
14599
  }
14600
14600
  isPointInStroke(x, y) {
14601
14601
  const rings = strokeToRings(this.flattened(), this.state.transform, this.strokeParams(), FLATTEN_TOLERANCE);
@@ -14802,8 +14802,8 @@ var SoftwareRasterContext = class {
14802
14802
  const c1 = Math.min(image.width, Math.floor(dirtyX + dirtyW));
14803
14803
  const r1 = Math.min(image.height, Math.floor(dirtyY + dirtyH));
14804
14804
  const src = image.data;
14805
- for (let row = r0; row < r1; row++) {
14806
- const ty = dy + row;
14805
+ for (let row2 = r0; row2 < r1; row2++) {
14806
+ const ty = dy + row2;
14807
14807
  if (ty < 0 || ty >= height) {
14808
14808
  continue;
14809
14809
  }
@@ -14812,7 +14812,7 @@ var SoftwareRasterContext = class {
14812
14812
  if (tx < 0 || tx >= width) {
14813
14813
  continue;
14814
14814
  }
14815
- const si = (row * image.width + col) * 4;
14815
+ const si = (row2 * image.width + col) * 4;
14816
14816
  const di = (ty * width + tx) * 4;
14817
14817
  const a = src[si + 3];
14818
14818
  if (a === 255) {
@@ -16346,7 +16346,7 @@ function gdipHue(r, g, b) {
16346
16346
  const q = (256 - t - (t >= 40 ? 1 : 0)) % 256;
16347
16347
  return q - Math.floor((q + 42) / 86);
16348
16348
  }
16349
- function applyHueSaturationLightness(src, hue, saturation, lightness2) {
16349
+ function applyHueSaturationLightness(src, hue, saturation, lightness) {
16350
16350
  const out = new Uint8ClampedArray(src);
16351
16351
  const shift = Math.round(hue * HUE_CIRCLE / 360);
16352
16352
  const sMul = 1 + saturation / 100;
@@ -16356,7 +16356,7 @@ function applyHueSaturationLightness(src, hue, saturation, lightness2) {
16356
16356
  const b = src[i + 2];
16357
16357
  const max = Math.max(r, g, b);
16358
16358
  const min = Math.min(r, g, b);
16359
- const l = clamp(Math.round(((max + min >> 1) * 100 + 255 * lightness2) / 100), 0, 255);
16359
+ const l = clamp(Math.round(((max + min >> 1) * 100 + 255 * lightness) / 100), 0, 255);
16360
16360
  if (max === min) {
16361
16361
  out[i] = out[i + 1] = out[i + 2] = l;
16362
16362
  continue;
@@ -16463,21 +16463,21 @@ function gdipBlur(src, w, h, radius, vRow = 0, vZeroAbove = false, fullVertical
16463
16463
  const verticalIndex = taps >= edgeHeight ? (y) => Math.max(0, Math.min(h - 1, y)) : (y) => mirror(y, h);
16464
16464
  const out = new Float64Array(w * h * 4);
16465
16465
  for (let y = 0; y < h; y++) {
16466
- const row = y * w * 4;
16466
+ const row2 = y * w * 4;
16467
16467
  for (let x = 0; x < w; x++) {
16468
16468
  let s0 = 0;
16469
16469
  let s1 = 0;
16470
16470
  let s2 = 0;
16471
16471
  let s3 = 0;
16472
16472
  for (let j = -taps; j <= taps; j++) {
16473
- const p = row + horizontalIndex(x + j) * 4;
16473
+ const p = row2 + horizontalIndex(x + j) * 4;
16474
16474
  const kw = k[j + taps];
16475
16475
  s0 += kw * src[p];
16476
16476
  s1 += kw * src[p + 1];
16477
16477
  s2 += kw * src[p + 2];
16478
16478
  s3 += kw * src[p + 3];
16479
16479
  }
16480
- const o = row + x * 4;
16480
+ const o = row2 + x * 4;
16481
16481
  out[o] = Math.round(s0);
16482
16482
  out[o + 1] = Math.round(s1);
16483
16483
  out[o + 2] = Math.round(s2);
@@ -16487,10 +16487,10 @@ function gdipBlur(src, w, h, radius, vRow = 0, vZeroAbove = false, fullVertical
16487
16487
  if (taps > 0 && vRow >= 0 && vRow < h) {
16488
16488
  const horizontal = out.slice();
16489
16489
  const endRow = fullVertical ? h : Math.min(h, vRow + verticalRows);
16490
- for (let row = vRow; row < endRow; row++) {
16490
+ for (let row2 = vRow; row2 < endRow; row2++) {
16491
16491
  const col = new Float64Array(w * 4);
16492
16492
  for (let j = -taps; j <= taps; j++) {
16493
- const yy = row + j;
16493
+ const yy = row2 + j;
16494
16494
  if (vZeroAbove && yy < vRow) {
16495
16495
  continue;
16496
16496
  }
@@ -16499,7 +16499,7 @@ function gdipBlur(src, w, h, radius, vRow = 0, vZeroAbove = false, fullVertical
16499
16499
  col[i] += k[j + taps] * horizontal[base + i];
16500
16500
  }
16501
16501
  }
16502
- out.set(col, row * w * 4);
16502
+ out.set(col, row2 * w * 4);
16503
16503
  }
16504
16504
  }
16505
16505
  return out;
@@ -17103,14 +17103,14 @@ function shapeRowSpans(shape, dom) {
17103
17103
  let active = [];
17104
17104
  let next = 0;
17105
17105
  const xs = [];
17106
- for (let row = dom.y0; row < dom.y1; row++) {
17107
- while (next < edges.length && edges[next].row0 === row) {
17106
+ for (let row2 = dom.y0; row2 < dom.y1; row2++) {
17107
+ while (next < edges.length && edges[next].row0 === row2) {
17108
17108
  active.push(edges[next++]);
17109
17109
  }
17110
- active = active.filter((e) => e.row1 > row);
17110
+ active = active.filter((e) => e.row1 > row2);
17111
17111
  xs.length = 0;
17112
17112
  for (const e of active) {
17113
- xs.push({ x: e.x + (row - e.row0) * e.slope, dir: e.dir });
17113
+ xs.push({ x: e.x + (row2 - e.row0) * e.slope, dir: e.dir });
17114
17114
  }
17115
17115
  xs.sort((a, b) => a.x - b.x);
17116
17116
  const spans = [];
@@ -26400,7 +26400,7 @@ function rasterizeMono(o, dropout, fixedBox) {
26400
26400
  }
26401
26401
  const local = { xs, ys, onCurve: o.onCurve, endPts: o.endPts };
26402
26402
  const data = new Uint8Array(width * height);
26403
- const at = (col, row) => (height - 1 - row) * width + col;
26403
+ const at = (col, row2) => (height - 1 - row2) * width + col;
26404
26404
  const r = new Raster(dropout);
26405
26405
  const P = r.precision;
26406
26406
  if (r.convert(local, false, 0, (height - 1) * P)) {
@@ -26471,9 +26471,9 @@ function rasterizeMono(o, dropout, fixedBox) {
26471
26471
  const e1 = h.ceilPub(x1);
26472
26472
  const e2 = h.floorPub(x2);
26473
26473
  if (e1 === e2) {
26474
- const row = h.truncPub(e1);
26475
- if (row >= 0 && row < height && col >= 0 && col < width) {
26476
- data[at(col, row)] = 1;
26474
+ const row2 = h.truncPub(e1);
26475
+ if (row2 >= 0 && row2 < height && col >= 0 && col < width) {
26476
+ data[at(col, row2)] = 1;
26477
26477
  }
26478
26478
  }
26479
26479
  }
@@ -26514,9 +26514,9 @@ function rasterizeMono(o, dropout, fixedBox) {
26514
26514
  return;
26515
26515
  }
26516
26516
  }
26517
- const row = h.truncPub(pxl);
26518
- if (row >= 0 && row < height && col >= 0 && col < width) {
26519
- data[at(col, row)] = 1;
26517
+ const row2 = h.truncPub(pxl);
26518
+ if (row2 >= 0 && row2 < height && col >= 0 && col < width) {
26519
+ data[at(col, row2)] = 1;
26520
26520
  }
26521
26521
  }
26522
26522
  );
@@ -26595,10 +26595,10 @@ function rasterizeGray(o) {
26595
26595
  const height = box.yMax - box.yMin;
26596
26596
  const data = new Uint8Array(width * height);
26597
26597
  for (let y = 0; y < hi.height; y++) {
26598
- const row = Math.floor(y / k) * width;
26598
+ const row2 = Math.floor(y / k) * width;
26599
26599
  for (let x = 0; x < hi.width; x++) {
26600
26600
  if (hi.data[y * hi.width + x]) {
26601
- data[row + Math.floor(x / k)]++;
26601
+ data[row2 + Math.floor(x / k)]++;
26602
26602
  }
26603
26603
  }
26604
26604
  }
@@ -27401,9 +27401,9 @@ function rasterizeClearType(o) {
27401
27401
  const data = new Uint8Array(n * height);
27402
27402
  for (let y = 0; y < height; y++) {
27403
27403
  sub.fill(0);
27404
- const row = y * hi.width;
27404
+ const row2 = y * hi.width;
27405
27405
  for (let x = 0; x < hi.width; x++) {
27406
- if (hi.data[row + x]) {
27406
+ if (hi.data[row2 + x]) {
27407
27407
  sub[Math.floor(x / S)] += 1;
27408
27408
  }
27409
27409
  }
@@ -30872,12 +30872,94 @@ function handleEmfGdiShapeRecord(rCtx, recType, dataOff, recSize) {
30872
30872
  }
30873
30873
  }
30874
30874
 
30875
+ // src/emf-gdi-illuminant-data.ts
30876
+ var ILLUMINANT_CUBE_DATA = {
30877
+ 1: "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",
30878
+ 2: "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",
30879
+ 3: "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",
30880
+ 4: "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",
30881
+ 5: "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",
30882
+ 7: "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",
30883
+ 8: "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"
30884
+ };
30885
+
30875
30886
  // src/emf-gdi-color-adjust.ts
30876
30887
  var CA_NEGATIVE = 1;
30877
30888
  var CA_LOG_FILTER = 2;
30878
30889
  var COLOR_ADJUSTMENT_SIZE = 24;
30890
+ var DEFAULT_COLOR_ADJUSTMENT = {
30891
+ flags: 0,
30892
+ illuminant: 0,
30893
+ redGamma: 1e4,
30894
+ greenGamma: 1e4,
30895
+ blueGamma: 1e4,
30896
+ referenceBlack: 0,
30897
+ referenceWhite: 1e4,
30898
+ contrast: 0,
30899
+ brightness: 0,
30900
+ colorfulness: 0,
30901
+ redGreenTint: 0
30902
+ };
30903
+ var illuminantCubes = /* @__PURE__ */ new Map();
30904
+ function illuminantCube(index) {
30905
+ let cube = illuminantCubes.get(index);
30906
+ if (cube === void 0) {
30907
+ const encoded = ILLUMINANT_CUBE_DATA[index];
30908
+ cube = null;
30909
+ if (encoded) {
30910
+ const bytes = Uint8Array.from(atob(encoded), (c) => c.charCodeAt(0));
30911
+ const planes = inflateZlibSync(bytes);
30912
+ cube = new Uint8Array(32768 * 3);
30913
+ for (let c = 0; c < 3; c++) {
30914
+ for (let i = 0; i < 32768; i++) {
30915
+ const prev = i & 31 ? cube[(i - 1) * 3 + c] : 0;
30916
+ cube[i * 3 + c] = prev + planes[c * 32768 + i] & 255;
30917
+ }
30918
+ }
30919
+ }
30920
+ illuminantCubes.set(index, cube);
30921
+ }
30922
+ return cube;
30923
+ }
30924
+ function hasIlluminant(ca) {
30925
+ return illuminantCube(ca.illuminant) !== null;
30926
+ }
30927
+ var PALETTE = Array.from({ length: 32 }, (_, n) => Math.round(n * 255 / 31));
30928
+ function paletteIndex(v) {
30929
+ const x = clamp012(v) * 255;
30930
+ let n = Math.min(30, Math.floor(x * 31 / 255));
30931
+ while (n < 30 && x >= PALETTE[n + 1]) n++;
30932
+ while (n > 0 && x < PALETTE[n]) n--;
30933
+ return n + Math.min(1, Math.max(0, (x - PALETTE[n]) / (PALETTE[n + 1] - PALETTE[n])));
30934
+ }
30935
+ function lookupIlluminant(cube, r, g, b) {
30936
+ const fr = paletteIndex(r);
30937
+ const fg = paletteIndex(g);
30938
+ const fb = paletteIndex(b);
30939
+ const r0 = Math.min(30, Math.floor(fr));
30940
+ const g0 = Math.min(30, Math.floor(fg));
30941
+ const b0 = Math.min(30, Math.floor(fb));
30942
+ const tr = fr - r0;
30943
+ const tg = fg - g0;
30944
+ const tb = fb - b0;
30945
+ const result = [0, 0, 0];
30946
+ for (let c = 0; c < 3; c++) {
30947
+ let acc = 0;
30948
+ for (let corner = 0; corner < 8; corner++) {
30949
+ const dr = corner & 1;
30950
+ const dg = corner >> 1 & 1;
30951
+ const db = corner >> 2 & 1;
30952
+ const weight = (dr ? tr : 1 - tr) * (dg ? tg : 1 - tg) * (db ? tb : 1 - tb);
30953
+ if (weight !== 0) {
30954
+ acc += weight * cube[(((r0 + dr) * 32 + g0 + dg) * 32 + b0 + db) * 3 + c];
30955
+ }
30956
+ }
30957
+ result[c] = acc / 255;
30958
+ }
30959
+ return result;
30960
+ }
30879
30961
  function isChannelOnlyColorAdjustment(ca) {
30880
- return !!ca && (ca.flags & ~CA_LOG_FILTER) === 0 && (ca.illuminant === 0 || ca.illuminant === 6) && ca.referenceBlack === 0 && ca.referenceWhite === 1e4 && ca.contrast === 0 && ca.brightness === 0 && ca.colorfulness === 0 && ca.redGreenTint === 0;
30962
+ return !!ca && !hasIlluminant(ca) && ca.colorfulness === 0 && ca.redGreenTint === 0;
30881
30963
  }
30882
30964
  function readColorAdjustment(view, off) {
30883
30965
  const ca = {
@@ -30898,19 +30980,19 @@ function readColorAdjustment(view, off) {
30898
30980
  return valid ? ca : null;
30899
30981
  }
30900
30982
  function isIdentityColorAdjustment(ca) {
30901
- return !ca || ca.flags === 0 && ca.redGamma === 1e4 && ca.greenGamma === 1e4 && ca.blueGamma === 1e4 && ca.referenceBlack === 0 && ca.referenceWhite === 1e4 && ca.contrast === 0 && ca.brightness === 0 && ca.colorfulness === 0 && ca.redGreenTint === 0;
30983
+ return !ca || ca.flags === 0 && !hasIlluminant(ca) && ca.redGamma === 1e4 && ca.greenGamma === 1e4 && ca.blueGamma === 1e4 && ca.referenceBlack === 0 && ca.referenceWhite === 1e4 && ca.contrast === 0 && ca.brightness === 0 && ca.colorfulness === 0 && ca.redGreenTint === 0;
30902
30984
  }
30903
- var CONTRAST_GAIN = 1.88;
30904
- var BRIGHTNESS_GAIN = 78.5;
30905
- var COLORFULNESS_GAIN = 1.335;
30906
- var TINT_RADIANS = -1.135;
30985
+ var CONTRAST_RATE = 0.0148885;
30986
+ var BRIGHTNESS_STEP = 0.95625;
30987
+ var COLORFULNESS_SCALE = 1 / 100;
30988
+ var TINT_RADIANS = -Math.PI / 3;
30907
30989
  var RGB_TO_XYZ = [
30908
30990
  [0.4124, 0.3576, 0.1805],
30909
30991
  [0.2126, 0.7152, 0.0722],
30910
30992
  [0.0193, 0.1192, 0.9505]
30911
30993
  ];
30912
30994
  var XYZ_TO_RGB = invert3(RGB_TO_XYZ);
30913
- var WHITE = RGB_TO_XYZ.map((row) => row[0] + row[1] + row[2]);
30995
+ var WHITE = RGB_TO_XYZ.map((row2) => row2[0] + row2[1] + row2[2]);
30914
30996
  var WHITE_D = WHITE[0] + 15 * WHITE[1] + 3 * WHITE[2];
30915
30997
  var WHITE_U = 4 * WHITE[0] / WHITE_D;
30916
30998
  var WHITE_V = 9 * WHITE[1] / WHITE_D;
@@ -30926,76 +31008,84 @@ function invert3(m) {
30926
31008
  [C / det, (b * g - a * h) / det, (a * e - b * d) / det]
30927
31009
  ];
30928
31010
  }
30929
- function lightness(t) {
30930
- return t > 8856e-6 ? 116 * Math.cbrt(t) - 16 : 903.3 * t;
30931
- }
30932
- function fromLightness(l) {
30933
- return l > 8 ? ((l + 16) / 116) ** 3 : l / 903.3;
30934
- }
30935
31011
  var clamp012 = (v) => v < 0 ? 0 : v > 1 ? 1 : v;
30936
- function colorAdjustmentMapper(ca) {
30937
- if (ca.referenceBlack === 0 && ca.referenceWhite === 1e4 && ca.contrast === 0 && ca.brightness === 0 && ca.colorfulness === 0 && ca.redGreenTint === 0) {
30938
- const tables = [ca.redGamma, ca.greenGamma, ca.blueGamma].map((gamma) => {
30939
- const table = new Uint8Array(256);
30940
- for (let i = 0; i < 256; i++) {
30941
- const input = (ca.flags & CA_NEGATIVE) !== 0 ? 255 - i : i;
30942
- let value = (input / 255) ** (gamma / 1e4);
30943
- if ((ca.flags & CA_LOG_FILTER) !== 0) value = Math.log2(1 + 7 * value) / 3;
30944
- table[i] = Math.round(value * 255);
30945
- }
30946
- return table;
30947
- });
30948
- return (rgb2) => tables[0][rgb2 >> 16 & 255] << 16 | tables[1][rgb2 >> 8 & 255] << 8 | tables[2][rgb2 & 255];
31012
+ var clamp255 = (v) => v < 0 ? 0 : v > 255 ? 255 : v;
31013
+ function adjustChroma(r, g, b, scale, angle) {
31014
+ const x = RGB_TO_XYZ[0][0] * r + RGB_TO_XYZ[0][1] * g + RGB_TO_XYZ[0][2] * b;
31015
+ const y = RGB_TO_XYZ[1][0] * r + RGB_TO_XYZ[1][1] * g + RGB_TO_XYZ[1][2] * b;
31016
+ const z = RGB_TO_XYZ[2][0] * r + RGB_TO_XYZ[2][1] * g + RGB_TO_XYZ[2][2] * b;
31017
+ const d = x + 15 * y + 3 * z;
31018
+ if (d <= 1e-9 || y <= 1e-9) {
31019
+ return [r, g, b];
31020
+ }
31021
+ const du = 4 * x / d - WHITE_U;
31022
+ const dv = 9 * y / d - WHITE_V;
31023
+ const cos = Math.cos(angle) * scale;
31024
+ const sin = Math.sin(angle) * scale;
31025
+ const u = WHITE_U + du * cos - dv * sin;
31026
+ const v = Math.max(1e-6, WHITE_V + du * sin + dv * cos);
31027
+ const x2 = y * 9 * u / (4 * v);
31028
+ const z2 = y * (12 - 3 * u - 20 * v) / (4 * v);
31029
+ const out = [
31030
+ XYZ_TO_RGB[0][0] * x2 + XYZ_TO_RGB[0][1] * y + XYZ_TO_RGB[0][2] * z2,
31031
+ XYZ_TO_RGB[1][0] * x2 + XYZ_TO_RGB[1][1] * y + XYZ_TO_RGB[1][2] * z2,
31032
+ XYZ_TO_RGB[2][0] * x2 + XYZ_TO_RGB[2][1] * y + XYZ_TO_RGB[2][2] * z2
31033
+ ];
31034
+ const lo = Math.min(0, out[0], out[1], out[2]);
31035
+ const hi = Math.max(255, out[0], out[1], out[2]);
31036
+ if (lo < 0 || hi > 255) {
31037
+ const k = 255 / (hi - lo);
31038
+ return [(out[0] - lo) * k, (out[1] - lo) * k, (out[2] - lo) * k];
30949
31039
  }
30950
- const black = ca.referenceBlack / 1e4;
30951
- const span = Math.max(1e-6, ca.referenceWhite / 1e4 - black);
31040
+ return out;
31041
+ }
31042
+ function colorAdjustmentMapper(ca) {
31043
+ const illuminant = illuminantCube(ca.illuminant);
30952
31044
  const gammas = [ca.redGamma / 1e4, ca.greenGamma / 1e4, ca.blueGamma / 1e4];
30953
- const negative = (ca.flags & CA_NEGATIVE) !== 0;
30954
- const linear = gammas.map((gamma) => {
30955
- const table = new Float64Array(256);
30956
- for (let i = 0; i < 256; i++) {
30957
- const v = negative ? 1 - i / 255 : i / 255;
30958
- table[i] = clamp012((v - black) / span) ** gamma;
30959
- }
30960
- return table;
30961
- });
30962
- const chroma = ca.colorfulness < 0 ? 1 + ca.colorfulness / 100 : 1 + COLORFULNESS_GAIN * ca.colorfulness / 100;
31045
+ const black = ca.referenceBlack / 1e4 * 255;
31046
+ const span = Math.max(1e-6, ca.referenceWhite / 1e4 * 255 - black);
31047
+ const gain = Math.exp(CONTRAST_RATE * ca.contrast);
31048
+ const lift = BRIGHTNESS_STEP * ca.brightness;
31049
+ const chroma = ca.colorfulness !== 0 || ca.redGreenTint !== 0;
31050
+ const scale = 1 + COLORFULNESS_SCALE * ca.colorfulness;
30963
31051
  const angle = TINT_RADIANS * ca.redGreenTint / 100;
30964
- const cos = Math.cos(angle) * chroma;
30965
- const sin = Math.sin(angle) * chroma;
30966
- const slope = Math.exp(CONTRAST_GAIN * ca.contrast / 100);
30967
- const offset = 50 - 50 * slope + BRIGHTNESS_GAIN * ca.brightness / 100;
30968
31052
  const log = (ca.flags & CA_LOG_FILTER) !== 0;
30969
- const colour = ca.colorfulness !== 0 || ca.redGreenTint !== 0;
30970
- const out = (v, c) => {
30971
- v = clamp012(fromLightness(slope * lightness(clamp012(v)) + offset)) ** (1 / gammas[c]);
31053
+ const negative = (ca.flags & CA_NEGATIVE) !== 0;
31054
+ const curve = (value, channel) => {
31055
+ let v = 255 * (clamp255(value) / 255) ** gammas[channel];
31056
+ v = (v - black) / span * 255;
31057
+ v = v * gain + lift;
30972
31058
  if (log) {
30973
- v = Math.log2(1 + 7 * v) / 3;
31059
+ v = 255 * Math.log2(1 + 7 * clamp255(v) / 255) / 3;
31060
+ }
31061
+ if (negative) {
31062
+ v = 255 - clamp255(v);
30974
31063
  }
30975
- return Math.round(v * 255);
31064
+ return Math.round(clamp255(v));
30976
31065
  };
31066
+ if (!illuminant && !chroma) {
31067
+ const tables = [0, 1, 2].map((channel) => Uint8Array.from({ length: 256 }, (_, i) => curve(i, channel)));
31068
+ return (rgb2) => tables[0][rgb2 >> 16 & 255] << 16 | tables[1][rgb2 >> 8 & 255] << 8 | tables[2][rgb2 & 255];
31069
+ }
30977
31070
  return (rgb2) => {
30978
- let r = linear[0][rgb2 >> 16 & 255];
30979
- let g = linear[1][rgb2 >> 8 & 255];
30980
- let b = linear[2][rgb2 & 255];
30981
- if (colour) {
30982
- const x = RGB_TO_XYZ[0][0] * r + RGB_TO_XYZ[0][1] * g + RGB_TO_XYZ[0][2] * b;
30983
- const y = RGB_TO_XYZ[1][0] * r + RGB_TO_XYZ[1][1] * g + RGB_TO_XYZ[1][2] * b;
30984
- const z = RGB_TO_XYZ[2][0] * r + RGB_TO_XYZ[2][1] * g + RGB_TO_XYZ[2][2] * b;
30985
- const d = x + 15 * y + 3 * z;
30986
- if (d > 1e-12 && y > 1e-12) {
30987
- const du = 4 * x / d - WHITE_U;
30988
- const dv = 9 * y / d - WHITE_V;
30989
- const u = WHITE_U + du * cos - dv * sin;
30990
- const v = Math.max(1e-6, WHITE_V + du * sin + dv * cos);
30991
- const x2 = y * 9 * u / (4 * v);
30992
- const z2 = y * (12 - 3 * u - 20 * v) / (4 * v);
30993
- r = XYZ_TO_RGB[0][0] * x2 + XYZ_TO_RGB[0][1] * y + XYZ_TO_RGB[0][2] * z2;
30994
- g = XYZ_TO_RGB[1][0] * x2 + XYZ_TO_RGB[1][1] * y + XYZ_TO_RGB[1][2] * z2;
30995
- b = XYZ_TO_RGB[2][0] * x2 + XYZ_TO_RGB[2][1] * y + XYZ_TO_RGB[2][2] * z2;
30996
- }
30997
- }
30998
- return out(r, 0) << 16 | out(g, 1) << 8 | out(b, 2);
31071
+ let c = [rgb2 >> 16 & 255, rgb2 >> 8 & 255, rgb2 & 255];
31072
+ if (illuminant) {
31073
+ const mapped = lookupIlluminant(illuminant, c[0] / 255, c[1] / 255, c[2] / 255);
31074
+ c = [mapped[0] * 255, mapped[1] * 255, mapped[2] * 255];
31075
+ }
31076
+ if (chroma) {
31077
+ c = adjustChroma(clamp255(c[0]), clamp255(c[1]), clamp255(c[2]), scale, angle);
31078
+ }
31079
+ return curve(c[0], 0) << 16 | curve(c[1], 1) << 8 | curve(c[2], 2);
31080
+ };
31081
+ }
31082
+ function splitColorAdjustment(ca) {
31083
+ const neutral = DEFAULT_COLOR_ADJUSTMENT;
31084
+ const palette = { ...neutral, illuminant: ca.illuminant, colorfulness: ca.colorfulness, redGreenTint: ca.redGreenTint };
31085
+ const curves = { ...ca, illuminant: 0, colorfulness: 0, redGreenTint: 0 };
31086
+ return {
31087
+ palette: isIdentityColorAdjustment(palette) ? void 0 : palette,
31088
+ curves: isIdentityColorAdjustment(curves) ? void 0 : curves
30999
31089
  };
31000
31090
  }
31001
31091
  function colorAdjustRgb(rgbs, ca) {
@@ -31040,6 +31130,52 @@ function applyColorAdjustment(pixels, ca) {
31040
31130
  }
31041
31131
  }
31042
31132
 
31133
+ // src/emf-gdi-halftone-dither.ts
31134
+ var THRESHOLDS = [
31135
+ [238, 110, 198, 70, 229, 102, 204, 76, 236, 108, 195, 69, 228, 100, 205, 78],
31136
+ [46, 174, 7, 134, 39, 166, 12, 140, 45, 171, 5, 132, 36, 164, 15, 142],
31137
+ [209, 83, 249, 122, 218, 90, 239, 112, 208, 80, 247, 120, 215, 88, 242, 114],
31138
+ [18, 146, 59, 185, 26, 154, 49, 176, 16, 144, 56, 184, 25, 152, 50, 178],
31139
+ [226, 98, 202, 74, 233, 107, 192, 64, 224, 96, 200, 73, 232, 104, 194, 66],
31140
+ [35, 162, 11, 138, 42, 170, 1, 128, 32, 160, 8, 136, 40, 168, 2, 130],
31141
+ [219, 91, 243, 115, 211, 83, 253, 125, 221, 93, 245, 117, 212, 85, 250, 123],
31142
+ [28, 154, 52, 178, 19, 147, 61, 188, 29, 157, 53, 181, 22, 149, 59, 187],
31143
+ [235, 107, 195, 67, 226, 100, 205, 77, 236, 109, 197, 69, 229, 101, 202, 76],
31144
+ [43, 171, 4, 131, 35, 163, 14, 141, 45, 173, 5, 133, 38, 164, 11, 139],
31145
+ [207, 79, 246, 119, 215, 87, 240, 113, 209, 81, 249, 121, 216, 90, 239, 111],
31146
+ [15, 143, 56, 183, 23, 151, 49, 177, 18, 145, 57, 185, 25, 153, 47, 175],
31147
+ [222, 95, 198, 71, 231, 103, 193, 66, 225, 97, 201, 73, 232, 105, 191, 63],
31148
+ [32, 159, 8, 135, 39, 167, 1, 129, 33, 161, 9, 137, 42, 169, 1, 127],
31149
+ [222, 94, 246, 118, 214, 86, 252, 124, 219, 92, 243, 116, 212, 84, 253, 126],
31150
+ [30, 158, 54, 181, 22, 150, 60, 188, 28, 156, 52, 180, 21, 147, 62, 190]
31151
+ ];
31152
+ var PERIOD_X = 66;
31153
+ var PERIOD_Y = 65;
31154
+ function column(j) {
31155
+ return j < 63 ? j % 16 : j <= 64 ? 14 : 15;
31156
+ }
31157
+ function row(i) {
31158
+ return i < 63 ? i % 16 : i === 63 ? 14 : 15;
31159
+ }
31160
+ var mod2 = (a, m) => (a % m + m) % m;
31161
+ function ditherStartX(destLeft, brushOrgX) {
31162
+ const k = mod2(destLeft - brushOrgX - 2, 65);
31163
+ return k < 63 ? k : k + 1;
31164
+ }
31165
+ function ditherStartY(destTop, brushOrgY) {
31166
+ return mod2(destTop - brushOrgY - 2, PERIOD_Y);
31167
+ }
31168
+ function ditherThreshold(startX, startY, dx, dy) {
31169
+ return THRESHOLDS[row(mod2(startY + dy, PERIOD_Y))][column(mod2(startX + dx, PERIOD_X))];
31170
+ }
31171
+ function paletteLevel(n) {
31172
+ return Math.round(n * 255 / 31);
31173
+ }
31174
+ function ditherQuantize(v, threshold) {
31175
+ const n = Math.floor((31 * v + threshold) / 255);
31176
+ return paletteLevel(n < 0 ? 0 : n > 31 ? 31 : n);
31177
+ }
31178
+
31043
31179
  // src/emf-gdi-stretch.ts
31044
31180
  var BLACKONWHITE = 1;
31045
31181
  var WHITEONBLACK = 2;
@@ -31174,6 +31310,19 @@ function softTent(d) {
31174
31310
  softTentCache.set(key, value);
31175
31311
  return value;
31176
31312
  }
31313
+ function ditherPixels(px, w, h, dither, flipX, flipY, phaseX, phaseY) {
31314
+ for (let y = 0; y < h; y++) {
31315
+ const yy = phaseY ? phaseY[y] : flipY ? h - 1 - y : y;
31316
+ for (let x = 0; x < w; x++) {
31317
+ const xx = phaseX ? phaseX[x] : x;
31318
+ const threshold = ditherThreshold(dither.startX, dither.startY, xx, yy);
31319
+ const o = (y * w + x) * 3;
31320
+ px[o] = ditherQuantize(px[o], threshold);
31321
+ px[o + 1] = ditherQuantize(px[o + 1], threshold);
31322
+ px[o + 2] = ditherQuantize(px[o + 2], threshold);
31323
+ }
31324
+ }
31325
+ }
31177
31326
  var SPECKLE_OVERSHOOT = 4;
31178
31327
  function halftoneDespeckle(px, w, h) {
31179
31328
  const src = px.slice();
@@ -31233,7 +31382,7 @@ function halftoneSharpen(px, w, h) {
31233
31382
  }
31234
31383
  }
31235
31384
  }
31236
- function stretchHalftone(src, sx, sy, sw, sh, dw, dh, adjust, adjustAfterSampling = false, directDib = false) {
31385
+ function stretchHalftone(src, sx, sy, sw, sh, dw, dh, adjust, adjustAfterSampling = false, directDib = false, dither, curves) {
31237
31386
  const W = Math.max(0, Math.round(Math.abs(dw)));
31238
31387
  const H = Math.max(0, Math.round(Math.abs(dh)));
31239
31388
  const SW = Math.round(Math.abs(sw));
@@ -31264,12 +31413,18 @@ function stretchHalftone(src, sx, sy, sw, sh, dw, dh, adjust, adjustAfterSamplin
31264
31413
  const enlarging = W >= SW && H >= SH && (W > SW || H > SH);
31265
31414
  const reducing = W < SW && H < SH;
31266
31415
  const mixed = W > SW && H < SH || W < SW && H > SH;
31267
- const nearestMixed = mixed && (!adjust || adjustAfterSampling) && (W < SW && W * 2 > SW || H < SH && H * 2 > SH);
31268
- const nativeMixed = mixed && (!adjust || adjustAfterSampling) && Math.min(SW, W) >= 2 && Math.min(SH, H) >= 2 && (W > SW && H * 2 <= SH || H > SH && W * 2 <= SW);
31416
+ const dithered = !!dither && !!adjust && !adjustAfterSampling;
31417
+ const nearestMixed = mixed && (!adjust || adjustAfterSampling || dithered) && (W < SW && W * 2 > SW || H < SH && H * 2 > SH);
31418
+ const nativeMixed = mixed && (!adjust || adjustAfterSampling || dithered) && Math.min(SW, W) >= 2 && Math.min(SH, H) >= 2 && (W > SW && H * 2 <= SH || H > SH && W * 2 <= SW);
31269
31419
  if ((enlarging || nearestMixed) && !directDib) {
31270
31420
  halftoneDespeckle(rect, SW, SH);
31271
31421
  }
31272
- if (adjust && !adjustAfterSampling) {
31422
+ const reducedEven = W < SW ? SW % 2 === 0 && H % SH === 0 : SH % 2 === 0 && W % SW === 0;
31423
+ const ditherAtSource = dithered && (W >= SW && H >= SH || nativeMixed && reducedEven);
31424
+ if (ditherAtSource) {
31425
+ ditherPixels(rect, SW, SH, dither, false, flipY);
31426
+ }
31427
+ if (adjust && !adjustAfterSampling && (!dithered || ditherAtSource)) {
31273
31428
  adjust(rect);
31274
31429
  }
31275
31430
  const sampleW = nativeMixed ? Math.min(SW, W) : W;
@@ -31395,7 +31550,22 @@ function stretchHalftone(src, sx, sy, sw, sh, dw, dh, adjust, adjustAfterSamplin
31395
31550
  }
31396
31551
  }
31397
31552
  }
31553
+ if (dithered && !ditherAtSource) {
31554
+ const phase = (n, src2, dst, selectSource) => Int32Array.from({ length: n }, (_, i) => dst > src2 ? Math.floor(i * src2 / dst) : selectSource ? Math.max(0, Math.min(src2 - 1, Math.floor(((i + 1) * 2 * src2 - dst) / (2 * dst)))) : i);
31555
+ ditherPixels(
31556
+ out,
31557
+ W,
31558
+ H,
31559
+ dither,
31560
+ false,
31561
+ false,
31562
+ nearestMixed ? phase(W, SW, W, true) : void 0,
31563
+ nearestMixed ? phase(H, SH, H, false) : void 0
31564
+ );
31565
+ adjust(out);
31566
+ }
31398
31567
  if (adjust && adjustAfterSampling) adjust(out);
31568
+ if (curves && dithered) curves(out);
31399
31569
  for (let i = 0, o = 0; i < W * H; i++, o += 3) {
31400
31570
  data[i * 4] = out[o];
31401
31571
  data[i * 4 + 1] = out[o + 1];
@@ -31424,7 +31594,7 @@ function patternOperand(rCtx, brush) {
31424
31594
  state.brushOrgY
31425
31595
  );
31426
31596
  }
31427
- function drawSourceMapped(target, decoded, req, offsetX, offsetY, mode) {
31597
+ function drawSourceMapped(target, decoded, req, offsetX, offsetY, mode, brushOrgX, brushOrgY) {
31428
31598
  const dLeft = Math.min(req.dx, req.dx + req.dw) - offsetX;
31429
31599
  const dTop = Math.min(req.dy, req.dy + req.dh) - offsetY;
31430
31600
  const px = mode === HALFTONE ? stretchHalftone(
@@ -31437,7 +31607,9 @@ function drawSourceMapped(target, decoded, req, offsetX, offsetY, mode) {
31437
31607
  req.dh,
31438
31608
  decoded.adjust,
31439
31609
  decoded.adjustAfterSampling,
31440
- req.dibOrigin === "bottom-left"
31610
+ req.dibOrigin === "bottom-left",
31611
+ decoded.adjust && !decoded.adjustAfterSampling ? { startX: ditherStartX(Math.min(req.dx, req.dx + req.dw), brushOrgX), startY: ditherStartY(Math.min(req.dy, req.dy + req.dh), brushOrgY) } : void 0,
31612
+ decoded.curves
31441
31613
  ) : stretchGdi(decoded.pixels, req.sx, req.sy, req.sw, req.sh, req.dw, req.dh, mode);
31442
31614
  if (px.width === 0 || px.height === 0) {
31443
31615
  return;
@@ -31467,13 +31639,17 @@ function decodeSource(rCtx, req) {
31467
31639
  return null;
31468
31640
  }
31469
31641
  const ca = rCtx.state.colorAdjustment;
31470
- const adjust = req.stretch && rCtx.state.stretchBltMode === HALFTONE && ca ? (rgb2) => colorAdjustRgb(rgb2, ca) : void 0;
31642
+ const halftone = req.stretch && rCtx.state.stretchBltMode === HALFTONE && ca;
31643
+ const channelOnly = isChannelOnlyColorAdjustment(ca);
31644
+ const split = halftone && !channelOnly ? splitColorAdjustment(ca) : void 0;
31645
+ const adjust = halftone ? ((rgb2) => colorAdjustRgb(rgb2, split?.palette ?? ca)) : void 0;
31646
+ const curves = split?.curves;
31471
31647
  let { sy } = req;
31472
31648
  if (req.dibOrigin === "bottom-left" && rCtx.view.getInt32(req.source.bmi + 8, true) > 0) {
31473
31649
  sy = image.height - sy - req.sh;
31474
31650
  }
31475
31651
  return {
31476
- decoded: { pixels: image, adjust, adjustAfterSampling: isChannelOnlyColorAdjustment(ca) },
31652
+ decoded: { pixels: image, adjust, adjustAfterSampling: channelOnly, curves: curves ? (rgb2) => colorAdjustRgb(rgb2, curves) : void 0 },
31477
31653
  req: { ...req, sy }
31478
31654
  };
31479
31655
  }
@@ -31546,7 +31722,7 @@ function runTernary(rCtx, req, index, usesP, usesS) {
31546
31722
  if (!decoded) {
31547
31723
  return;
31548
31724
  }
31549
- drawSourceMapped(layer.ctx, decoded.decoded, decoded.req, rect.x, rect.y, rCtx.state.stretchBltMode);
31725
+ drawSourceMapped(layer.ctx, decoded.decoded, decoded.req, rect.x, rect.y, rCtx.state.stretchBltMode, rCtx.state.brushOrgX, rCtx.state.brushOrgY);
31550
31726
  src = canvasGetImageData(layer.ctx, 0, 0, rect.w, rect.h);
31551
31727
  }
31552
31728
  const dst = canvasGetImageData(ctx, rect.x, rect.y, rect.w, rect.h);
@@ -31725,7 +31901,7 @@ function executeBlit(rCtx, request) {
31725
31901
  case "copy": {
31726
31902
  const decoded = decodeSource(rCtx, req);
31727
31903
  if (decoded) {
31728
- drawSourceMapped(ctx, decoded.decoded, decoded.req, 0, 0, rCtx.state.stretchBltMode);
31904
+ drawSourceMapped(ctx, decoded.decoded, decoded.req, 0, 0, rCtx.state.stretchBltMode, rCtx.state.brushOrgX, rCtx.state.brushOrgY);
31729
31905
  }
31730
31906
  return;
31731
31907
  }
@@ -31902,9 +32078,9 @@ function readMask(rCtx, offset, offBmi, cbBmi, offBits, cbBits) {
31902
32078
  return null;
31903
32079
  }
31904
32080
  const out = new Uint8Array(width * height);
31905
- for (let row = 0; row < height; row++) {
31906
- const y = heightRaw > 0 ? height - 1 - row : row;
31907
- const rowOff = bits + row * stride;
32081
+ for (let row2 = 0; row2 < height; row2++) {
32082
+ const y = heightRaw > 0 ? height - 1 - row2 : row2;
32083
+ const rowOff = bits + row2 * stride;
31908
32084
  for (let x = 0; x < width; x++) {
31909
32085
  out[y * width + x] = view.getUint8(rowOff + (x >> 3)) >> 7 - (x & 7) & 1;
31910
32086
  }
@@ -31964,7 +32140,7 @@ function axisMap(rCtx, xDest, yDest, cxDest, cyDest, sx, sy, sw, sh) {
31964
32140
  const baseX = Math.min(sx, sx + sw);
31965
32141
  const baseY = Math.min(sy, sy + sh);
31966
32142
  const col = new Int32Array(x1 - x0);
31967
- const row = new Int32Array(y1 - y0);
32143
+ const row2 = new Int32Array(y1 - y0);
31968
32144
  const mirrored = dw < 0 || dh < 0;
31969
32145
  const pick = (i, len, n) => mirrored ? Math.min(len - 1, Math.floor(i * len / n)) : gdiNearest(i, len, n);
31970
32146
  for (let x = x0; x < x1; x++) {
@@ -31973,9 +32149,9 @@ function axisMap(rCtx, xDest, yDest, cxDest, cyDest, sx, sy, sw, sh) {
31973
32149
  }
31974
32150
  for (let y = y0; y < y1; y++) {
31975
32151
  const k = pick(y - top, ah, H);
31976
- row[y - y0] = sh < 0 !== dh < 0 ? baseY + ah - 1 - k : baseY + k;
32152
+ row2[y - y0] = sh < 0 !== dh < 0 ? baseY + ah - 1 - k : baseY + k;
31977
32153
  }
31978
- return { box: { x: x0, y: y0, w: x1 - x0, h: y1 - y0 }, col, row };
32154
+ return { box: { x: x0, y: y0, w: x1 - x0, h: y1 - y0 }, col, row: row2 };
31979
32155
  }
31980
32156
  function writePixels(rCtx, box, op) {
31981
32157
  const { ctx } = rCtx;
@@ -32064,15 +32240,15 @@ function handleAlphaBlend(rCtx, offset, dataOff, recSize) {
32064
32240
  if (!map) {
32065
32241
  return;
32066
32242
  }
32067
- const { box, col, row } = map;
32243
+ const { box, col, row: row2 } = map;
32068
32244
  if (!canReadBack(rCtx.ctx)) {
32069
32245
  drawAlphaOverlay(rCtx, map, src, sca, srcAlpha);
32070
32246
  return;
32071
32247
  }
32072
- writePixels(rCtx, box, (x, y, d) => alphaBlendPixel(texelAt(src, col[x - box.x], row[y - box.y]), d, sca, srcAlpha));
32248
+ writePixels(rCtx, box, (x, y, d) => alphaBlendPixel(texelAt(src, col[x - box.x], row2[y - box.y]), d, sca, srcAlpha));
32073
32249
  }
32074
32250
  function drawAlphaOverlay(rCtx, map, src, sca, srcAlpha) {
32075
- const { box, col, row } = map;
32251
+ const { box, col, row: row2 } = map;
32076
32252
  const scratch = acquireScratch(box.w, box.h);
32077
32253
  if (!scratch) {
32078
32254
  return;
@@ -32080,7 +32256,7 @@ function drawAlphaOverlay(rCtx, map, src, sca, srcAlpha) {
32080
32256
  const data = new Uint8ClampedArray(box.w * box.h * 4);
32081
32257
  for (let y = 0; y < box.h; y++) {
32082
32258
  for (let x = 0; x < box.w; x++) {
32083
- const s = texelAt(src, col[x], row[y]);
32259
+ const s = texelAt(src, col[x], row2[y]);
32084
32260
  const a = srcAlpha ? (s >>> 24) * sca / 255 : sca;
32085
32261
  const i = (y * box.w + x) * 4;
32086
32262
  const k = srcAlpha && s >>> 24 > 0 ? 255 / (s >>> 24) : 1;
@@ -32115,9 +32291,9 @@ function handleTransparentBlt(rCtx, offset, dataOff, recSize) {
32115
32291
  if (!map) {
32116
32292
  return;
32117
32293
  }
32118
- const { box, col, row } = map;
32294
+ const { box, col, row: row2 } = map;
32119
32295
  writePixels(rCtx, box, (x, y) => {
32120
- const s = texelAt(src, col[x - box.x], row[y - box.y]) & 16777215;
32296
+ const s = texelAt(src, col[x - box.x], row2[y - box.y]) & 16777215;
32121
32297
  return s === key ? -1 : s;
32122
32298
  });
32123
32299
  }
@@ -32148,7 +32324,7 @@ function handleMaskBlt(rCtx, offset, dataOff, recSize) {
32148
32324
  if (!map) {
32149
32325
  return;
32150
32326
  }
32151
- const { box, col, row } = map;
32327
+ const { box, col, row: row2 } = map;
32152
32328
  const needsDest = rop3Operands(fore).usesD || mask !== null && rop3Operands(back).usesD;
32153
32329
  if (needsDest && !canReadBack(rCtx.ctx)) {
32154
32330
  return;
@@ -32158,7 +32334,7 @@ function handleMaskBlt(rCtx, offset, dataOff, recSize) {
32158
32334
  const my0 = Math.min(r.sy, r.sy + r.sh);
32159
32335
  writePixels(rCtx, box, (x, y, d) => {
32160
32336
  const sxp = col[x - box.x];
32161
- const syp = row[y - box.y];
32337
+ const syp = row2[y - box.y];
32162
32338
  let index = fore;
32163
32339
  if (mask) {
32164
32340
  const mx = xMask + sxp - mx0;
@@ -32273,10 +32449,10 @@ function handleSetDibitsToDevice(rCtx, offset, dataOff, recSize) {
32273
32449
  if (!map) {
32274
32450
  return;
32275
32451
  }
32276
- const { box, col, row } = map;
32452
+ const { box, col, row: row2 } = map;
32277
32453
  writePixels(rCtx, box, (x, y) => {
32278
32454
  const i = col[x - box.x];
32279
- const j = row[y - box.y];
32455
+ const j = row2[y - box.y];
32280
32456
  const fromBottom = ySrc + cy - 1 - j;
32281
32457
  const bandRow = topDown ? fullRows - 1 - fromBottom - startScan : scans - 1 - (fromBottom - startScan);
32282
32458
  if (bandRow < 0 || bandRow >= band.height) {
@@ -32498,8 +32674,8 @@ function decodeAnsiRecord(bytes, charSet) {
32498
32674
  const byteLengths = [];
32499
32675
  for (let i = 0; i < bytes.length; i++) {
32500
32676
  const lead = bytes[i];
32501
- const row = JOHAB_ROWS[lead];
32502
- const code = row && i + 1 < bytes.length ? row.charCodeAt(bytes[i + 1]) : 65533;
32677
+ const row2 = JOHAB_ROWS[lead];
32678
+ const code = row2 && i + 1 < bytes.length ? row2.charCodeAt(bytes[i + 1]) : 65533;
32503
32679
  const count = lead < 128 || code === 65533 ? 1 : 2;
32504
32680
  codes.push(lead < 128 ? lead : code);
32505
32681
  byteLengths.push(count);
@@ -38154,23 +38330,23 @@ function spansOf(p, rects) {
38154
38330
  const x0 = Math.round(l * p.kx);
38155
38331
  const x1 = Math.round(r * p.kx);
38156
38332
  for (let y = Math.round(t * p.ky); y < Math.round(b * p.ky); y++) {
38157
- let row = rows.get(y);
38158
- if (!row) {
38159
- row = [];
38160
- rows.set(y, row);
38333
+ let row2 = rows.get(y);
38334
+ if (!row2) {
38335
+ row2 = [];
38336
+ rows.set(y, row2);
38161
38337
  }
38162
- row.push([x0, x1]);
38338
+ row2.push([x0, x1]);
38163
38339
  }
38164
38340
  }
38165
38341
  for (const y of [...rows.keys()].sort((a, b) => a - b)) {
38166
- const row = rows.get(y).sort((a, b) => a[0] - b[0]);
38167
- let [s0, s1] = row[0];
38168
- for (let i = 1; i < row.length; i++) {
38169
- if (row[i][0] <= s1) {
38170
- s1 = Math.max(s1, row[i][1]);
38342
+ const row2 = rows.get(y).sort((a, b) => a[0] - b[0]);
38343
+ let [s0, s1] = row2[0];
38344
+ for (let i = 1; i < row2.length; i++) {
38345
+ if (row2[i][0] <= s1) {
38346
+ s1 = Math.max(s1, row2[i][1]);
38171
38347
  } else {
38172
38348
  spans.add(y, s0, s1);
38173
- [s0, s1] = row[i];
38349
+ [s0, s1] = row2[i];
38174
38350
  }
38175
38351
  }
38176
38352
  spans.add(y, s0, s1);
@@ -38282,8 +38458,8 @@ function devicePixelSpans(p, x, y) {
38282
38458
  const x1 = Math.max(x0 + 1, Math.round((x + 1) * p.kx));
38283
38459
  const y0 = Math.round(y * p.ky);
38284
38460
  const y1 = Math.max(y0 + 1, Math.round((y + 1) * p.ky));
38285
- for (let row = y0; row < y1; row++) {
38286
- spans.add(row, x0, x1);
38461
+ for (let row2 = y0; row2 < y1; row2++) {
38462
+ spans.add(row2, x0, x1);
38287
38463
  }
38288
38464
  return spans;
38289
38465
  }
@@ -38343,14 +38519,14 @@ function wmfExtFloodFill(p, x, y, colorRef, type) {
38343
38519
  if (py + 1 < h) visit(i + w);
38344
38520
  }
38345
38521
  const spans = new SpanList();
38346
- for (let row = 0; row < h; row++) {
38522
+ for (let row2 = 0; row2 < h; row2++) {
38347
38523
  let run = -1;
38348
38524
  for (let col = 0; col <= w; col++) {
38349
- const on = col < w && seen[row * w + col] === 1;
38525
+ const on = col < w && seen[row2 * w + col] === 1;
38350
38526
  if (on && run < 0) {
38351
38527
  run = col;
38352
38528
  } else if (!on && run >= 0) {
38353
- spans.add(row, run, col);
38529
+ spans.add(row2, run, col);
38354
38530
  run = -1;
38355
38531
  }
38356
38532
  }