Javascript Base64 远程文件

Javascript Base64 Remote File

是否可以直接从远程 URL 使用 Javascript 对文件进行 base64 编码?例如,如果我想在我的应用程序中从 https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png 仅使用 javascript 对 google 徽标进行 base64 编码,可以吗?

我找到了一个可行的解决方案,使用 html5 canvas 和 jquery - jsfiddle 复制在这里。我可能会走这条路:

https://jsfiddle.net/bu25sosf/1/

function convertImgToBase64(url, callback, outputFormat) {
    var img = new Image();
    img.crossOrigin = 'Anonymous';
    img.onload = function () {
        var canvas = document.createElement('CANVAS');
        var ctx = canvas.getContext('2d');
        canvas.height = this.height;
        canvas.width = this.width;
        ctx.drawImage(this, 0, 0);
        var dataURL = canvas.toDataURL(outputFormat || 'image/png');
        callback(dataURL);
        canvas = null;
    };
    img.src = url;
}


$('#img2b64').submit(function (event) {
    var imageUrl = $(this).find('input[name=url]').val();
    console.log('imageUrl', imageUrl);
    convertImgToBase64(imageUrl, function (base64Img) {
        $('.output')
            .find('textarea')
            .val(base64Img)
            .end()
            .find('a')
            .attr('href', base64Img)
            .text(base64Img)
            .end()
            .find('img')
            .attr('src', base64Img);
    });

    event.preventDefault();
});