python-archieve-projects/WechatBot/node_modules/@jimp/utils
Lee2vv 0b82373111 init 2024-05-05 13:46:50 +08:00
..
dist init 2024-05-05 13:46:50 +08:00
src init 2024-05-05 13:46:50 +08:00
CHANGELOG.md Backup 2023-08-18 21:52:54 +08:00
LICENSE Backup 2023-08-18 21:52:54 +08:00
README.md Backup 2023-08-18 21:52:54 +08:00
index.d.ts Backup 2023-08-18 21:52:54 +08:00
package.json Backup 2023-08-18 21:52:54 +08:00

README.md

@jimp/utils

Utils for jimp extensions.

Available Methods

isNodePattern

Determines if function was passed an node callback.

if (isNodePattern(cb)) {
  cb.call(this, null, this);
}

throwError

Either throws the error or calls the callback with the error.

if (/* check for error */) {
  return throwError.call(this, 'someError', cb);
}

scan

Scans through a region of the bitmap, calling a function for each pixel.

function removeRed(image) {
  return scan(
    image,
    0,
    0,
    image.bitmap.width,
    image.bitmap.height,
    function (x, y, index) {
      const red = this.bitmap.data[index + 0];
      const green = this.bitmap.data[index + 1];
      const blue = this.bitmap.data[index + 2];
      const alpha = this.bitmap.data[index + 3];

      this.bitmap.data[index + 0] = 0;
      this.bitmap.data[index + 1] = green;
      this.bitmap.data[index + 2] = blue;
      this.bitmap.data[index + 3] = alpha;
    }
  );
}

scanIterator

It's possible to make an iterator scan with a for ... of, if you want to break the scan before it reaches the end, but note, that this iterator has a huge performance implication:

for (const { x, y, idx, image } of scanIterator(
  image,
  0,
  0,
  image.bitmap.width,
  image.bitmap.height
)) {
}