javascript压缩上传图片

export function compressPicture(file) {

    return new Promise((resolve, reject) => {
        let width, height;
        let MAX_WH = 800;
        let image = new Image()

        image.onload = () => {
            if (image.height > MAX_WH) {
                // 宽度等比例缩放 *=
                image.width *= MAX_WH / image.height;
                image.height = MAX_WH;
            }
            if (image.width > MAX_WH) {
                // 宽度等比例缩放 *=
                image.height *= MAX_WH / image.width;
                image.width = MAX_WH;
            }

            let canvas = document.createElement('canvas'); // 创建Canvas对象(画布)
            let context = canvas.getContext('2d');

            canvas.width = width = image.width;
            canvas.height = height = image.height;

            context.clearRect(0, 0, canvas.width, canvas.height);
            context.drawImage(image, 0, 0, image.width, image.height);

            const base64Url = canvas.toDataURL(file.type, 0.3);
            resolve(base64Url)
        }
        image.onerror = () => {
            reject()
        }

        image.src = file.url;
    })
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值