function svgToCanvas(svg, scale = 1) {
return new Promise(resolve => {
const svgSize = svg.viewBox.baseVal;
const width = svgSize.width * scale;
const height = svgSize.height * scale;
const serializer = new XMLSerializer();
const svgString = serializer.serializeToString(svg);
const image = new Image();
image.src = `data:image/svg+xml;base64,${btoa(
unescape(encodeURIComponent(svgString))
)}`;
image.onload = () => {
const context = DOM.context2d(width, height, 1);
context.drawImage(
image,
0,
0,
svgSize.width * scale,
svgSize.height * scale
);
resolve(context.canvas);
};
});
}