Spaces:
Sleeping
Sleeping
| import { expect, test, describe } from "vitest"; | |
| import { createJimp } from "@jimp/core"; | |
| import jpeg from "@jimp/js-jpeg"; | |
| import png from "@jimp/js-png"; | |
| import { makeTestImage } from "@jimp/test-utils"; | |
| import * as blit from "./index.js"; | |
| const Jimp = createJimp({ formats: [jpeg, png], plugins: [blit.methods] }); | |
| describe("Blit over image", function () { | |
| const targetImg = Jimp.fromBitmap( | |
| makeTestImage( | |
| "▴▴▴▴▸▸▸▸", | |
| "▴▴▴▴▸▸▸▸", | |
| "▴▴▴▴▸▸▸▸", | |
| "▴▴▴▴▸▸▸▸", | |
| "▾▾▾▾◆◆◆◆", | |
| "▾▾▾▾◆◆◆◆", | |
| "▾▾▾▾◆◆◆◆", | |
| "▾▾▾▾◆◆◆◆", | |
| ), | |
| ); | |
| // stores the Jimp instances of the JGD images above. | |
| // prettier-ignore | |
| const srcImg = Jimp.fromBitmap(makeTestImage( | |
| "â–¡â–¡â–¡â–¡â–¡â–¡", | |
| "□▥▥▥▥□", | |
| "□▥■■▥□", | |
| "□▥■■▥□", | |
| "□▥▥▥▥□", | |
| "â–¡â–¡â–¡â–¡â–¡â–¡" | |
| )); | |
| test("blit on top, with no crop", () => { | |
| expect(targetImg.clone().blit(srcImg)).toMatchSnapshot(); | |
| }); | |
| test("blit on middle, with no crop", () => { | |
| expect( | |
| targetImg.clone().blit({ src: srcImg, x: 1, y: 1 }), | |
| ).toMatchSnapshot(); | |
| }); | |
| test("blit on middle, with x,y crop", () => { | |
| expect( | |
| targetImg | |
| .clone() | |
| .blit({ src: srcImg, x: 2, y: 2, srcX: 1, srcY: 1, srcW: 5, srcH: 5 }), | |
| ).toMatchSnapshot(); | |
| }); | |
| test("blit on middle, with x,y,w,h crop", () => { | |
| expect( | |
| targetImg | |
| .clone() | |
| .blit({ src: srcImg, x: 2, y: 2, srcX: 1, srcY: 1, srcW: 4, srcH: 4 }), | |
| ).toMatchSnapshot(); | |
| }); | |
| test("blit partially out, on top-left", () => { | |
| expect( | |
| targetImg.clone().blit({ src: srcImg, x: -1, y: -1 }), | |
| ).toMatchSnapshot(); | |
| }); | |
| test("blit partially out, on bottom-right", () => { | |
| expect( | |
| targetImg.clone().blit({ src: srcImg, x: 3, y: 3 }), | |
| ).toMatchSnapshot(); | |
| }); | |
| }); | |