import { Jimp, getTestDir } from "@jimp/test-utils"; import configure from "@jimp/custom"; import png from "../src"; const jimp = configure({ types: [png] }, Jimp); describe("PNG", () => { const imagesDir = getTestDir(__dirname) + "/images"; it("load PNG", async () => { const image = await jimp.read(imagesDir + "/dice.png"); image.getPixelColor(10, 10).should.be.equal(0x00000000); image.getPixelColor(160, 80).should.be.equal(0x1c1cd4ff); image.getPixelColor(400, 250).should.be.equal(0x7e0c0cda); }); it("export PNG", async () => { const jgd = await jimp.read({ width: 3, height: 3, data: [ 0xff0000ff, 0xff0080ff, 0xff00ffff, 0xff0080ff, 0xff00ffff, 0x8000ffff, 0xff00ffff, 0x8000ffff, 0x0000ffff, ], }); const buffer = await jgd.getBufferAsync("image/png"); buffer.toString().should.match(/^.PNG\r\n/); }); it("should use png options", async () => { const jgd = await jimp.read({ width: 20, height: 20, data: [ 0xff0000ff, 0xff0080ff, 0xff00ffff, 0xff0080ff, 0xff00ffff, 0x8000ffff, 0xff00ffff, 0x8000ffff, 0x0000ffff, 0xff0000ff, 0xff0080ff, 0xff00ffff, 0xff0080ff, 0xff00ffff, 0x8000ffff, 0xff00ffff, 0x8000ffff, 0x0000ffff, 0xff0000ff, 0xff0080ff, 0xff00ffff, 0xff0080ff, 0xff00ffff, 0x8000ffff, 0xff00ffff, 0x8000ffff, 0x0000ffff, 0xff0000ff, 0xff0080ff, 0xff00ffff, 0xff0080ff, 0xff00ffff, 0x8000ffff, 0xff00ffff, 0x8000ffff, 0x0000ffff, ], }); const image = await jgd .deflateStrategy(0) .colorType(0) .getBufferAsync(Jimp.MIME_PNG); const expected = await jimp.read(imagesDir + "/options.png"); const expectedBuffer = await expected .deflateStrategy(0) .colorType(0) .getBufferAsync(Jimp.MIME_PNG); image.should.be.deepEqual(expectedBuffer); }); });