emf-converter 4.5.2 → 4.6.1

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