Skip to content

Instantly share code, notes, and snippets.

@crazy4groovy
Created May 5, 2019 02:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save crazy4groovy/549c644480f8428aad5733f067a07651 to your computer and use it in GitHub Desktop.
Save crazy4groovy/549c644480f8428aad5733f067a07651 to your computer and use it in GitHub Desktop.
get a dataUrl for any img src on any domain.
async function getDataUrl(src) {
function run(resolve, reject) {
const tmpImage = new Image();
tmpImage.setAttribute('crossOrigin', 'Anonymous'); // NEEDED FOR CANVAS ANTI-TAINT
tmpImage.src = src;
tmpImage.onerror = reject; // no dataUrl
tmpImage.onload = () => {
const canvas = document.createElement('canvas');
canvas.width = tmpImage.naturalWidth; // or .width;
canvas.height = tmpImage.naturalHeight; // or .height;
const context = canvas.getContext('2d');
context.drawImage(tmpImage, 0, 0);
const dataUrl = canvas.toDataURL();
// console.log({dataUrl});
resolve(dataUrl);
};
}
return new Promise(run);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment