This commit is contained in:
tamaina
2023-05-06 15:52:51 +00:00
parent 39becdb576
commit ee57b60da3
5 changed files with 100 additions and 34 deletions

View File

@@ -0,0 +1,20 @@
import { decode } from 'blurhash';
let canvas: OffscreenCanvas | null = null;
onmessage = (event) => {
if ('canvas' in event.data) {
canvas = event.data.canvas;
}
if (!(canvas && 'hash' in event.data && typeof event.data.hash === 'string')) {
return;
}
const width = event.data.width ?? 64;
const height = event.data.height ?? 64;
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);
};