收藏
回答

wx.compressImage压缩图片有文件变大,压缩比不正确的问题?

下图是存在云存储中的文件同一张图片的三次不同比例压缩,分三次上传,第次上传一张原图和一张压缩后的图(看更新时间可以知道哪两个是一组的)。

发现这个接口存在的两个问题: (原图6.32MB)

第一是压缩比例无效,第二是出现体积变大的概率很大。如图3.87MB的是压50的,有一点可用性。6.36MB那个是压缩80,返而更大了。7.71MB那个更历害,设定是压缩60。

ios。微信7.0.13

wx.chooseImage({
      count: 9,
      sizeType: ['original', 'compressed'], 
      sourceType: ['album'], //从相册选择
      success: (res) => {
        const tempFilePaths = res.tempFilePaths
        const size = res.tempFiles[0].size
        const src = res.tempFiles[0].path
        console.log(size)
        wx.compressImage({
          src,
          quality: 60,
          success: res => {
            tempFilePaths.push(res.tempFilePath)
            // 后面对图片进行了上传操作
            })
          }
        })
      }
    });


回答关注问题邀请回答
收藏

1 个回答

  • Cjiang
    Cjiang
    2020-07-03

    请提供能复现问题的简单代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。

    2020-07-03
    有用
    回复 4
    • 来了
      来了
      2020-07-06
      代码不就在问题那里了吗?就是直接调用接口压缩,发现社区很多类似的问题,很久了也没有得到解决
      2020-07-06
      回复
    • 2020-08-12回复来了
      iphone 7,iOS13.6,真是过分了啊,调用这个接口越压越大,我的需求是压缩到小于500k,quality: 80,还大就75 --> 70以此类推,但是得到的图片越来越大quality越小,图片越大,真牛逼,Android是没问题的
      2020-08-12
      回复
    • 来了
      来了
      2020-08-16回复
      目前这个接口在社区返映是有很多这类问题,商业上几乎没法用,而且官方这么久了也没有修复, 我写的是自己学习用的项目,还没有仔细测。建议自己用canvas来压缩图片, 稳一点的,在wx.chooseImage的时候就不让选原图
      2020-08-16
      回复
    • 2020-12-02回复来了
      canvas性能本来就不好,压缩一次还好,压缩一次不达标还要继续压缩,我们可以同时选9张图,这个方案不大适合我们,我们只是用canvas压到1200 * 1200,0.8质量,然后调用微信API压质量,如果大小异常也就不压了
      2020-12-02
      回复
登录 后发表内容
问题标签