qrframe/public/thumbnailWorker.js

40 wiersze
1.9 KiB
JavaScript
Czysty Zwykły widok Historia

2024-09-13 07:52:47 +00:00
// pre-generated unscannable thumbnail qrcode
2024-08-22 03:50:21 +00:00
const PREVIEW_OUTPUTQR = {
2024-09-13 07:52:47 +00:00
text: "thumbnail",
2024-08-22 03:50:21 +00:00
// prettier-ignore
2024-09-13 07:52:47 +00:00
matrix: [ 5,5,5,5,5,5,5,0,33,2,3,2,3,0,5,5,5,5,5,5,5,5,4,4,4,4,4,5,0,33,3,2,2,3,0,5,4,4,4,4,4,5,5,4,133,133,133,4,5,0,33,2,3,2,2,0,5,4,133,133,133,4,5,5,4,133,133,133,4,5,0,33,3,2,3,2,0,5,4,133,133,133,4,5,5,4,133,133,133,4,5,0,33,2,2,2,2,0,5,4,133,133,133,4,5,5,4,4,4,4,4,5,0,32,2,2,3,2,0,5,4,4,4,4,4,5,5,5,5,5,5,5,5,0,17,16,17,16,17,0,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,33,3,3,3,2,0,0,0,0,0,0,0,0,32,33,33,32,33,32,17,33,32,2,3,3,3,160,161,160,161,161,161,161,161,2,3,2,2,2,2,16,2,3,2,3,3,2,2,3,2,3,2,3,2,3,3,3,2,3,3,2,17,3,3,2,3,3,2,3,2,3,2,2,2,3,2,3,3,3,2,2,2,16,2,2,3,2,2,3,3,2,3,2,3,2,2,2,2,2,3,3,2,2,17,2,3,3,3,3,3,2,3,2,2,3,3,3,2,0,0,0,0,0,0,0,0,161,2,3,3,3,3,3,2,3,3,2,3,3,5,5,5,5,5,5,5,0,161,3,2,3,2,2,2,3,2,3,2,3,2,5,4,4,4,4,4,5,0,160,2,3,2,2,2,2,2,3,3,2,3,2,5,4,133,133,133,4,5,0,161,2,2,2,3,2,2,3,3,2,3,2,3,5,4,133,133,133,4,5,0,160,3,2,3,2,3,3,2,3,3,3,2,2,5,4,133,133,133,4,5,0,161,2,2,2,2,2,3,3,2,3,2,2,2,5,4,4,4,4,4,5,0,161,3,2,3,2,3,3,2,3,3,2,2,2,5,5,5,5,5,5,5,0,160,3,2,2,2,2,2,2,2,2,3,3,2],
2024-08-22 03:50:21 +00:00
version: 1,
ecl: 2, //ECL.Quartile
2024-08-22 03:50:21 +00:00
mode: 2, // Mode.Byte
2024-09-13 07:52:47 +00:00
mask: 4, // Mask.M4
2024-08-22 03:50:21 +00:00
};
2024-09-13 07:52:47 +00:00
onmessage = async ({ data: { type,url,params,timeoutId } }) => {
2024-08-22 03:50:21 +00:00
try {
switch (type) {
case "svg": {
const { renderSVG } = await import(url);
2024-09-13 07:52:47 +00:00
const svg = await renderSVG(PREVIEW_OUTPUTQR,params);
2024-08-22 03:50:21 +00:00
2024-09-13 07:52:47 +00:00
postMessage({ type,svg,timeoutId });
2024-08-22 03:50:21 +00:00
break;
}
case "canvas": {
const { renderCanvas } = await import(url);
2024-09-13 07:52:47 +00:00
const canvas = new OffscreenCanvas(0,0);
await renderCanvas(PREVIEW_OUTPUTQR,params,canvas);
2024-08-22 03:50:21 +00:00
const bitmap = canvas.transferToImageBitmap();
2024-09-13 07:52:47 +00:00
postMessage({ type,bitmap,timeoutId },[bitmap]);
2024-08-22 03:50:21 +00:00
break;
}
}
} catch (error) {
postMessage({
type: "error",
error,
timeoutId,
});
}
};