使用Webkit Fallback将图像DataUrl转换为JavaScript中的Blob?

时间:2014-03-20 22:43:06

标签: javascript html html5 image blob

我有一个图像表示为数据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()?

1 个答案:

答案 0 :(得分:0)

Blob功能检测支持的最佳方法是trycatch

function supportsBlob() {
    try {
        return !!new Blob();
    } catch (e) {
        return false;
    }
}