Spaces:
Sleeping
Sleeping
File size: 1,982 Bytes
3530df7 | 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 72 73 | 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();
});
});
|