SOURCE

//图片压缩
function render(src) {
    return new Promise((resolve,reject)=>{
        let MAX_HEIGHT = 1024;
        let image = new Image();
        image.src = src;
        image.onload = function (){
            let canvas = document.createElement('canvas');
            if (image.height > MAX_HEIGHT && image.height >= image.width) {
                image.width *= MAX_HEIGHT / image.height;
                image.height = MAX_HEIGHT;
            }
            if (image.width > MAX_HEIGHT && image.width > image.height) {
                image.height *= MAX_HEIGHT / image.width;
                image.width = MAX_HEIGHT;
            }
            let ctx = canvas.getContext("2d");
            ctx.clearRect(0, 0, canvas.width, canvas.height);
            canvas.width = image.width;
            canvas.height = image.height;
            ctx.drawImage(image, 0, 0, image.width, image.height);
            resolve(canvas.toDataURL("image/jpeg"));
        }
    })
}
function reader(file) {
    return new Promise((resolve,reject)=>{
        let reader = new FileReader();
        reader.onload = async function (e) {
           resolve(await render(this.result));
        }
        reader.readAsDataURL(file);
    })
}
export async function compress (files = []) {
    let compressFiles = files;
    if (!Array.isArray(files)) {
        compressFiles = [files];
    }
    let compressedFiles = [];
    for(let i = 0; i < compressFiles.length; i++){
        let file = compressFiles[i];
        let base64 = await reader(file);
        compressedFiles.push({
            name: file.name,
            base64: base64
        })
    }
    if (Array.isArray(files)) {
        return compressedFiles;
    } else {
        return compressedFiles[0];
    }
}
console 命令行工具 X clear

                    
>
console