UNPKG

@syngrisi/syngrisi

Version:
52 lines 1.6 kB
// src/server/lib/comparison/compareImagesNode.ts import resemble from "@syngrisi/node-resemble.js"; async function streamToBuffer(stream) { return new Promise((resolve, reject) => { const data = []; stream.on("data", (chunk) => { data.push(chunk); }); stream.on("end", () => { resolve(Buffer.concat(data)); }); stream.on("error", (err) => { reject(err); }); }); } function compareImages(image1, image2, options) { return new Promise((resolve, reject) => { try { const ignoreTransform = { antialiasing: "ignoreAntialiasing", colors: "ignoreColors", nothing: "ignoreNothing" }; const ignoreMethod = ignoreTransform[options.ignore] ? ignoreTransform[options.ignore] : "ignoreNothing"; const outputOpts = options.output; resemble.outputSettings(outputOpts); let ignoredRect; if (options.ignoreRectangles) { ignoredRect = options.ignoreRectangles.map((it) => { delete it.name; return [it.left, it.top, it.right - it.left, it.bottom - it.top]; }); } resemble(image1).compareTo(image2)[ignoreMethod]().ignoreRectangles(ignoredRect).onComplete(async (data) => { console.log(data); const stream = await data.getDiffImage(); const buffer = await streamToBuffer(stream.pack()); data.getBuffer = function() { return buffer; }; resolve(data); }); } catch (e) { reject(e); } }); } export { compareImages as default }; //# sourceMappingURL=compareImagesNode.js.map