28 lines
552 B
TypeScript

import { bufToImageUrl, imageToArray } from ".";
const worker = new Worker("build/workers/ai-worker.js");
let i = 0;
let cb = {};
worker.addEventListener("message", ev => {
if (ev.data.i in cb) {
cb[ev.data.i](ev.data.result);
delete cb[ev.data.i]
delete ev.data.i;
}
})
const analyze = (img: Image) => new Promise(async (res, rej) => {
i++;
const _i = i;
const pixels = await imageToArray(img);
worker.postMessage({ i: _i, pixels, width: img.width, height: img.height });
cb[_i] = res;
});
export default { analyze }