js 实现图片压缩

♀尐吖头ヾ 提交于 2019-12-05 19:14:35
function compressImg(file) {

    // 创建Canvas对象(画布)

    let canvas =  document.createElement('canvas')  

    // 获取对应的CanvasRenderingContext2D对象(画笔)

    let context = canvas.getContext('2d') 

    // 创建新的图片对象 

    let img = new Image()

    // 指定图片的DataURL(图片的base64编码数据)

    img.src = file.content

    //画布宽度

    let width = 512   

    // 监听浏览器加载图片完成进行绘制

    img.onload = () => {

        //画布大小按照图片的比例生成

        let height = width / (img.naturalWidth / img.naturalHeight)

        // 指定canvas画布大小,该大小为最后生成图片的大小

        canvas.width = width

        canvas.height = height

        

        context.drawImage(img, 0, 0, canvas.width, canvas.height)

        // 将绘制完成的图片重新转化为base64编码,file.type为图片类型,0.92为默认压缩质量

        //返回压缩后的文件

        return canvas.toDataURL(file.type, 0.92) 

        

    }  

}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!