File size: 1,490 Bytes
bf237c2 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
<div align="center">
<img width="200" height="200"
src="https://s3.amazonaws.com/pix.iemoji.com/images/emoji/apple/ios-11/256/crayon.png">
<h1>@jimp/utils</h1>
<p>Utils for jimp extensions.</p>
</div>
## Available Methods
### isNodePattern
Determines if function was passed an node callback.
```js
if (isNodePattern(cb)) {
cb.call(this, null, this);
}
```
### throwError
Either throws the error or calls the callback with the error.
```js
if (/* check for error */) {
return throwError.call(this, 'someError', cb);
}
```
### scan
Scans through a region of the bitmap, calling a function for each pixel.
```js
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:
```js
for (const { x, y, idx, image } of scanIterator(
image,
0,
0,
image.bitmap.width,
image.bitmap.height
)) {
}
```
|