28 lines
552 B
TypeScript
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 } |