JavaScript 将图片 URL 转为 base64 码

将图片 URL 转为 base64 的大前提是图片,图片链接与 JavaScript 运行在同一个域下,或者图片服务器允许跨域。对应 JavaScript 代码如下,供参考:

//传入图片路径,返回base64
function get_base64(imgUrl) {
    return new Promise((resolve, reject) => {
        let img = new Image();
        img.src = imgUrl;
        img.setAttribute("crossOrigin", "anonymous");

        img.onload = function () {
            let canvas = document.createElement("canvas");
            canvas.width = img.width;
            canvas.height = img.height;
            let ctx = canvas.getContext("2d");
            ctx.drawImage(img, 0, 0);
            let dataURL = canvas.toDataURL("image/png");
            resolve(dataURL.replace(/^data:image/(png|jpg);base64,/, ""));
        }
        img.onerror = function () {
            reject("The image could not be loaded.");
        }
    }
    );
}

本代码采用的是 promise 需要在 async/await 语法下使用。