Skip to content

Instantly share code, notes, and snippets.

@GunGunGun
Forked from camman3d/svg-to-png.js
Created April 27, 2024 16:32
Show Gist options
  • Save GunGunGun/c7cb9024799ffad9bfdc4be1386b498b to your computer and use it in GitHub Desktop.
Save GunGunGun/c7cb9024799ffad9bfdc4be1386b498b to your computer and use it in GitHub Desktop.
Convert SVG to PNG. Verified in Chrome, Safari, and Firefox
// let svg = document.querySelector('svg');
function svgToPng(svg) {
let svgData = new XMLSerializer().serializeToString(svg);
let canvas = document.createElement('canvas');
let ctx = canvas.getContext('2d');
let DOMURL = window.URL || window.webkitURL || window;
let img = new Image();
let blog = new Blob([svgData], {type: 'image/svg+xml'});
let url = DOMURL.createObjectURL(blog);
return new Promise(resolve => {
img.addEventListener('load', () => {
canvas.width = img.width;
canvas.height = img.height;
ctx.drawImage(img,0,0);
let url = canvas.toDataURL('image/png');
resolve(url);
});
img.src = url;
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment