Initial commit
This commit is contained in:
commit
e49726988c
5445 files changed
+1089914
No files matched your search
+37
@@ -0,0 +1,37 @@
|
||||
import { JimpClass } from "@jimp/types";
|
||||
|
||||
export const methods = {
|
||||
/**
|
||||
* Apply a ordered dithering effect.
|
||||
* @example
|
||||
* ```ts
|
||||
* import { Jimp } from "jimp";
|
||||
*
|
||||
* const image = await Jimp.read("test/image.png");
|
||||
*
|
||||
* image.dither();
|
||||
* ```
|
||||
*/
|
||||
dither<I extends JimpClass>(image: I) {
|
||||
const rgb565Matrix = [
|
||||
1, 9, 3, 11, 13, 5, 15, 7, 4, 12, 2, 10, 16, 8, 14, 6,
|
||||
];
|
||||
|
||||
image.scan((x, y, idx) => {
|
||||
const thresholdId = ((y & 3) << 2) + (x % 4);
|
||||
const dither = rgb565Matrix[thresholdId]!;
|
||||
|
||||
image.bitmap.data[idx] = Math.min(image.bitmap.data[idx]! + dither, 0xff);
|
||||
image.bitmap.data[idx + 1] = Math.min(
|
||||
image.bitmap.data[idx + 1]! + dither,
|
||||
0xff,
|
||||
);
|
||||
image.bitmap.data[idx + 2] = Math.min(
|
||||
image.bitmap.data[idx + 2]! + dither,
|
||||
0xff,
|
||||
);
|
||||
});
|
||||
|
||||
return image;
|
||||
},
|
||||
};
|
||||
Reference in new issue
Block a user