Skip to content

Instantly share code, notes, and snippets.

@andipaetzold
Created February 19, 2015 14:39
Show Gist options
  • Save andipaetzold/d88f29caa0ddb3566759 to your computer and use it in GitHub Desktop.
Save andipaetzold/d88f29caa0ddb3566759 to your computer and use it in GitHub Desktop.
Data URL to Blob in JavaScript
// source: https://github.com/ebidel/filer.js/blob/b7ab6f4cbb82a17565ff68227e5bc984a9934038/src/filer.js#L137-159
var dataURLToBlob = function(dataURL)
{
var BASE64_MARKER = ";base64,";
if (dataURL.indexOf(BASE64_MARKER) == -1)
{
var parts = dataURL.split(",");
var contentType = parts[0].split(":")[1];
var raw = decodeURIComponent(parts[1]);
return new Blob([raw], {type: contentType});
}
var parts = dataURL.split(BASE64_MARKER);
var contentType = parts[0].split(":")[1];
var raw = window.atob(parts[1]);
var rawLength = raw.length;
var uInt8Array = new Uint8Array(rawLength);
for (var i = 0; i < rawLength; ++i) {
uInt8Array[i] = raw.charCodeAt(i);
}
return new Blob([uInt8Array], {type: contentType});
}
@mrfade
Copy link

mrfade commented May 7, 2020

Thanks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment