functiondataURItoBlob(dataURI) {
// convert base64 to raw binary data held in a string
// doesn't handle URLEncoded DataURIs - see SO answer #6850276 for code that does this
varbyteString=atob(dataURI.split(',')[1]);
// separate out the mime component
varmimeString=dataURI.split(',')[0].split(':')[1].split(';')[0]
// write the bytes of the string to an ArrayBuffer
varab=newArrayBuffer(byteString.length);
// create a view into the buffer
varia=newUint8Array(ab);
// set the bytes of the buffer to the correct values
for (vari=0; i<byteString.length; i++) {
ia[i] =byteString.charCodeAt(i);
}
// write the ArrayBuffer to a blob, and you're done
varblob=newBlob([ab], {type:mimeString});
returnblob;
}