美文网首页
html base64图片压缩

html base64图片压缩

作者: 天天喜欢钱 | 来源:发表于2021-04-10 17:17 被阅读0次

个人用于微信小程序中html的图片压缩展示与上传

export function dealImage(base64, min, max, callback) {

    var newImage = new Image();

    newImage.src = base64;

    // newImage.setAttribute("crossOrigin", 'Anonymous');  //url为外域时需要

    newImage.onload = function () {

        var imgWidth = this.width;

        var imgHeight = this.height;

        var canvas = document.createElement("canvas");

        var quality = 0.6;    //压缩系数0-1之间

        canvas.width = imgWidth*quality;

        canvas.height = imgHeight*quality;

        var ctx = canvas.getContext("2d");

        ctx.drawImage(newImage, 0, 0, canvas.width, canvas.height);

        let result = canvas.toDataURL("image/jpeg", quality); //压缩语句

        // 如想确保图片压缩到自己想要的尺寸,如要求在50-150kb之间,请加以下语句,quality初始值根据情况自定

        while (result.length / 1024 > max) {

            quality -= 0.01;

            result = canvas.toDataURL("image/jpeg", quality);

        }

        // 防止最后一次压缩低于最低尺寸,只要quality递减合理,无需考虑

        while (result.length / 1024 < min) {

            quality += 0.01;

            result = canvas.toDataURL("image/jpeg", quality);

        }

        callback(result);//必须通过回调函数返回,否则无法及时拿到该值

    }

}

在PC上调试完全没有问题,挪到手机上就各种问题,,,安卓反应有卡顿,而我的iphone6就直接卡死了。。。中间还有过改成file格式上传,但是数据各种嵌套,使用formdata传数据,不会写。。无奈还是要选base64传输。。。

优化部分主要是画布大小,ctx.drawImage方法中的大小要与画布保持一致,否则图片有裁剪

另外调整压缩后大小的while中的quality计算可以根据需求调整计算幅度

相关文章

  • 前端性能优化

    1. html压缩 2. css压缩,是否合并? 3. js压缩,是否合并? 4. 图片压缩,base64,雪碧图...

  • html base64图片压缩

    个人用于微信小程序中html的图片压缩展示与上传 export function dealImage(base64...

  • 前端实现图片裁剪和压缩

    前端实现图片的裁剪和压缩1、压缩图片drawImage,压缩图片长宽或者质量参数来实现压缩 2、图片base64转...

  • 上传图片H5 ReaderFile API 并将转成base64

    HTML5有个功能就可以将图片转换base64,那就是FileReader。同时我们也需要对图片大小执行限制和压缩...

  • vue(2019/7/15)

    vue实现照片选择或者拍照功能 照片格式校验, 图片质量压缩, 图片尺寸压缩, 图片离线保存, 图片base64编...

  • 图片上传,压缩方法

    1、点击图片上传,拿到图片,转化base64,然后在执行图片压缩 addImg() { let _this = ...

  • 压缩

    压缩 html css js 压缩图片

  • 图片自适应方案讨论延伸到sharpP

    1、一般来说,我们常见的使用图片的优化方案有base64编码、雪碧图、字体图片、图片压缩等 base64编码(1 ...

  • 前端实现图片压缩

    1.思路 获取图片数据 —> 用canvans画图,压缩 —> 压缩后为base64 —> 转成文件格式 —> 上...

  • 图片转换成base64

    html5如何将图片转换成base64? html5如果要将图片转换成base64需要使用到一个html5的接口F...

网友评论

      本文标题:html base64图片压缩

      本文链接:https://www.haomeiwen.com/subject/vjynkltx.html