Unfortunately, you cannot extract the BLOB from the Cordova camera plugin.
The way to get a BLOB is to convert a base64 encoded string to a BLOB and use it.
It uses a method (compatible with ES6) that allows you to convert to BLOB and only sliceSize to provide greater memory efficiency.
private getBlob(b64Data:string, contentType:string, sliceSize:number= 512) { contentType = contentType || ''; sliceSize = sliceSize || 512; let byteCharacters = atob(b64Data); let byteArrays = []; for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) { let slice = byteCharacters.slice(offset, offset + sliceSize); let byteNumbers = new Array(slice.length); for (let i = 0; i < slice.length; i++) { byteNumbers[i] = slice.charCodeAt(i); } let byteArray = new Uint8Array(byteNumbers); byteArrays.push(byteArray); } let blob = new Blob(byteArrays, {type: contentType}); return blob; }
source share