use buraha
This commit is contained in:
@@ -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 });
|
||||
};
|
||||
|
Reference in New Issue
Block a user