Skip to content

Instantly share code, notes, and snippets.

@aermolaev
Created December 16, 2015 21:44
Show Gist options
  • Select an option

  • Save aermolaev/a96ba40cd68fe357195f to your computer and use it in GitHub Desktop.

Select an option

Save aermolaev/a96ba40cd68fe357195f to your computer and use it in GitHub Desktop.

Revisions

  1. aermolaev created this gist Dec 16, 2015.
    24 changes: 24 additions & 0 deletions dataURLToBlob.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,24 @@
    function dataURLToBlob(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});
    }