This repository has been archived on 2022-03-12. You can view files and clone it, but cannot push or open issues or pull requests.
2021-04-02 02:24:13 +03:00

68 lines
1.4 KiB
Markdown

<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
)) {
}
```