Spaces:
Sleeping
Sleeping
| import { expect, test, describe } from "vitest"; | |
| import { makeTestImage } from "@jimp/test-utils"; | |
| import { createJimp } from "@jimp/core"; | |
| import { methods } from "./index.js"; | |
| const jimp = createJimp({ plugins: [methods] }); | |
| describe("Mask", () => { | |
| const imgSrcOpaq = jimp.fromBitmap( | |
| // prettier-ignore | |
| makeTestImage( | |
| "▴□▾□■□", | |
| "■▴■▾■□", | |
| "■□▴□▾□", | |
| "■□■▴■▾" | |
| ), | |
| ); | |
| const imgSrcAlpa = jimp.fromBitmap( | |
| // prettier-ignore | |
| makeTestImage( | |
| "▴▵▾▿", | |
| "▴▵▾▿", | |
| "▴▵▾▿" | |
| ), | |
| ); | |
| const maskGrayBig = jimp.fromBitmap( | |
| // prettier-ignore | |
| makeTestImage( | |
| "048840", | |
| "8CFFC8", | |
| "8CFFC8", | |
| "048840" | |
| ), | |
| ); | |
| const maskGraySmall = jimp.fromBitmap( | |
| // prettier-ignore | |
| makeTestImage( | |
| "0369", | |
| "369C", | |
| "69CF" | |
| ), | |
| ); | |
| const maskColor = jimp.fromBitmap( | |
| // prettier-ignore | |
| makeTestImage( | |
| "▴▴▾▾", | |
| "▪▪▰▰", | |
| "□□□□" | |
| ), | |
| ); | |
| test("Affect opaque image with a gray mask with the same size", () => { | |
| expect(imgSrcOpaq.clone().mask(maskGrayBig)).toMatchSnapshot(); | |
| }); | |
| test("Affect opaque image with a gray mask with the same size, blited", () => { | |
| expect( | |
| imgSrcOpaq.clone().mask({ src: maskGrayBig, x: 1, y: 1 }), | |
| ).toMatchSnapshot(); | |
| }); | |
| test("Affect opaque image with a gray mask with the same size, blited negative", () => { | |
| expect( | |
| imgSrcOpaq.clone().mask({ src: maskGrayBig, x: -1, y: -1 }), | |
| ).toMatchSnapshot(); | |
| }); | |
| test("Affect opaque image with a smaller gray mask", () => { | |
| expect(imgSrcOpaq.clone().mask(maskGraySmall)).toMatchSnapshot(); | |
| }); | |
| test("Affect opaque image with a smaller gray mask, blited", () => { | |
| expect( | |
| imgSrcOpaq.clone().mask({ src: maskGraySmall, x: 1, y: 1 }), | |
| ).toMatchSnapshot(); | |
| }); | |
| test("Affect alpha image with a bigger gray mask", () => { | |
| expect(imgSrcAlpa.clone().mask(maskGrayBig)).toMatchSnapshot(); | |
| }); | |
| test("Affect alpha image with a bigger gray mask, blited", () => { | |
| expect( | |
| imgSrcAlpa.clone().mask({ src: maskGrayBig, x: -1, y: -1 }), | |
| ).toMatchSnapshot(); | |
| }); | |
| test("Affect opaque image with a colored mask", () => { | |
| expect( | |
| imgSrcOpaq.clone().mask({ src: maskColor, x: 1, y: 1 }), | |
| ).toMatchSnapshot(); | |
| }); | |
| }); | |