use buraha

This commit is contained in:
tamaina
2023-05-07 16:39:38 +00:00
parent 15d4cfa2f7
commit 0a17d7fa22
5 changed files with 73 additions and 46 deletions

View File

@@ -1,18 +1,19 @@
import { decode } from 'blurhash';
import { render } from 'buraha';
let canvas: OffscreenCanvas;
onmessage = async (event) => {
console.log(event.data);
if (!('hash' in event.data && typeof event.data.hash === 'string')) {
return;
}
const width = event.data.width ?? 64;
const height = event.data.height ?? 64;
const canvas = new OffscreenCanvas(width, height);
const ctx = canvas.getContext!('2d');
if (!ctx) return;
const imageData = ctx.createImageData(width, height);
const pixels = decode(event.data.hash, width, height);
imageData.data.set(pixels);
ctx.putImageData(imageData, 0, 0);
const bitmap = canvas.transferToImageBitmap();
postMessage({ bitmap, id: event.data.id });
if (event.data.canvas) {
canvas = event.data.canvas;
}
if (!canvas) {
throw new Error('No canvas');
}
render(event.data.hash, canvas);
postMessage({ result: true });
};