PHP 8.2.30
Preview: interlace.js Size: 1.96 KB
/proc/thread-self/root/home/byroehnu/.trash/node_modules11/pngjs/lib/interlace.js

"use strict";

// Adam 7
//   0 1 2 3 4 5 6 7
// 0 x 6 4 6 x 6 4 6
// 1 7 7 7 7 7 7 7 7
// 2 5 6 5 6 5 6 5 6
// 3 7 7 7 7 7 7 7 7
// 4 3 6 4 6 3 6 4 6
// 5 7 7 7 7 7 7 7 7
// 6 5 6 5 6 5 6 5 6
// 7 7 7 7 7 7 7 7 7

let imagePasses = [
  {
    // pass 1 - 1px
    x: [0],
    y: [0],
  },
  {
    // pass 2 - 1px
    x: [4],
    y: [0],
  },
  {
    // pass 3 - 2px
    x: [0, 4],
    y: [4],
  },
  {
    // pass 4 - 4px
    x: [2, 6],
    y: [0, 4],
  },
  {
    // pass 5 - 8px
    x: [0, 2, 4, 6],
    y: [2, 6],
  },
  {
    // pass 6 - 16px
    x: [1, 3, 5, 7],
    y: [0, 2, 4, 6],
  },
  {
    // pass 7 - 32px
    x: [0, 1, 2, 3, 4, 5, 6, 7],
    y: [1, 3, 5, 7],
  },
];

exports.getImagePasses = function (width, height) {
  let images = [];
  let xLeftOver = width % 8;
  let yLeftOver = height % 8;
  let xRepeats = (width - xLeftOver) / 8;
  let yRepeats = (height - yLeftOver) / 8;
  for (let i = 0; i < imagePasses.length; i++) {
    let pass = imagePasses[i];
    let passWidth = xRepeats * pass.x.length;
    let passHeight = yRepeats * pass.y.length;
    for (let j = 0; j < pass.x.length; j++) {
      if (pass.x[j] < xLeftOver) {
        passWidth++;
      } else {
        break;
      }
    }
    for (let j = 0; j < pass.y.length; j++) {
      if (pass.y[j] < yLeftOver) {
        passHeight++;
      } else {
        break;
      }
    }
    if (passWidth > 0 && passHeight > 0) {
      images.push({ width: passWidth, height: passHeight, index: i });
    }
  }
  return images;
};

exports.getInterlaceIterator = function (width) {
  return function (x, y, pass) {
    let outerXLeftOver = x % imagePasses[pass].x.length;
    let outerX =
      ((x - outerXLeftOver) / imagePasses[pass].x.length) * 8 +
      imagePasses[pass].x[outerXLeftOver];
    let outerYLeftOver = y % imagePasses[pass].y.length;
    let outerY =
      ((y - outerYLeftOver) / imagePasses[pass].y.length) * 8 +
      imagePasses[pass].y[outerYLeftOver];
    return outerX * 4 + outerY * width * 4;
  };
};

Directory Contents

Dirs: 0 × Files: 22

Name Size Perms Modified Actions
6.33 KB lrw-r--r-- 2026-02-27 09:45:00
Edit Download
4.56 KB lrw-r--r-- 2026-02-27 09:45:00
Edit Download
4.15 KB lrw-r--r-- 2026-02-27 09:45:02
Edit Download
662 B lrw-r--r-- 2026-02-27 09:45:02
Edit Download
853 B lrw-r--r-- 2026-02-27 09:45:02
Edit Download
4.18 KB lrw-r--r-- 2026-02-27 09:45:02
Edit Download
558 B lrw-r--r-- 2026-02-27 09:45:02
Edit Download
483 B lrw-r--r-- 2026-02-27 09:45:04
Edit Download
4.69 KB lrw-r--r-- 2026-02-27 09:45:04
Edit Download
2.27 KB lrw-r--r-- 2026-02-27 09:45:04
Edit Download
1.96 KB lrw-r--r-- 2026-02-27 09:45:04
Edit Download
1.13 KB lrw-r--r-- 2026-02-27 09:45:04
Edit Download
1.17 KB lrw-r--r-- 2026-02-27 09:45:04
Edit Download
3.64 KB lrw-r--r-- 2026-02-27 09:45:04
Edit Download
372 B lrw-r--r-- 2026-02-27 09:45:04
Edit Download
4.22 KB lrw-r--r-- 2026-02-27 09:45:04
Edit Download
2.48 KB lrw-r--r-- 2026-02-27 09:45:04
Edit Download
7.54 KB lrw-r--r-- 2026-02-27 09:45:04
Edit Download
252 B lrw-r--r-- 2026-02-27 09:45:04
Edit Download
4.31 KB lrw-r--r-- 2026-02-27 09:45:04
Edit Download
3.66 KB lrw-r--r-- 2026-02-27 09:45:04
Edit Download
1.09 KB lrw-r--r-- 2026-02-27 09:45:04
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).