我有一个图像表示为数据URL。我希望将此图像转换为blob。
我为此目的使用以下方法:
function dataURItoBlob(dataURI) {
// convert base64 to raw binary data held in a string
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 arrayBuffer = new ArrayBuffer(byteString.length);
var _ia = new Uint8Array(arrayBuffer);
for (var i = 0; i < byteString.length; i++) {
_ia[i] = byteString.charCodeAt(i);
}
var dataView = new DataView(arrayBuffer);
var blob = new Blob([dataView], { type: mimeString });
return blob;
}
这个功能正在运行,但正如我在这里找到的那样:Blob support blob有时需要webkit前缀才能工作。我知道对于URL,我可以使用带有
的回退var _URL = URL || webkitURL;
如何在我的函数中包含webkit前缀版本作为旧版浏览器的后备版本?我是否必须在Blob()上使用BlobBuilder()?
答案 0 :(得分:0)
Blob功能检测支持的最佳方法是try
和catch
function supportsBlob() {
try {
return !!new Blob();
} catch (e) {
return false;
}
}