【发布时间】:2016-05-20 10:33:46
【问题描述】:
我想使用 AngularJS 将我的 Base64 图像转换为我的科尔多瓦应用程序项目中的 blob,但我不断收到非法构造函数错误。我已经尝试了很多在线提供的解决方案,但似乎都没有奏效。任何帮助表示赞赏。
var imageElement = angular.element(document.querySelector('#profileImg'));
var imageURI = dataURIToBlobURI(imageElement.attr('src'));
function dataURIToBlobURI(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
var byteString = atob(dataURI.split(',')[1]);
// separate out the mime component
var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0]
// write the bytes of the string to an ArrayBuffer
var ab = new ArrayBuffer(byteString.length);
var ia = new Uint8Array(ab);
for (var i = 0; i < byteString.length; i++) {
ia[i] = byteString.charCodeAt(i);
}
var bb = new Blob([ab], {type: 'image/png'});
return bb;
}
我在这里不断收到错误new Blob([ab], {type: 'image/png'}) 并且似乎不知道如何使它工作。仅当应用在 Android 或 iOS 中时才会发生,而不是在 Chrome 中查看时发生。
我尝试了以下方法,但均无济于事。
var bb = new Blob(ab);
var bb = new Blob([ab]);
var bb = new Blob(dataURI);
谢谢
【问题讨论】:
-
你试过
new Blob([ia], {type: 'image/png'}); -
试过但没用
标签: javascript android angularjs cordova blob