offscreen canvas js
import Canvg, { presets } from 'canvg'; self.onmessage = async (event) => { const { width, height, svg } = event.data; const canvas = new OffscreenCanvas(width, height); const ctx = canvas.getContext('2d'); const v = await Canvg.from(ctx, svg, presets.offscreen()); // Render only first frame, ignoring animations and mouse. await v.render(); const blob = await canvas.convertToBlob(); const pngUrl = URL.createObjectURL(blob); self.postMessage({ pngUrl }); };