收藏
回答

关于服务端图片返回太大的问题?

现在做商城遇到个问题,客户在pc端上传了5M以上的图片,在小程序前端加载返回数据时就会加载的很慢,有没有一种方法将图片在前端自动压缩呢,需求是不能限制pc端上传图片的大小,

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

4 个回答

  • Admin²⁰²⁰
    Admin²⁰²⁰
    03-29

    楼主可以用下面的方法:

    wx.compressImage({
      src: '', // 图片路径
      quality: 80 // 压缩质量
    })
    
    


    参考链接:

    wx.compressImage(Object object) | 微信开放文档

    https://developers.weixin.qq.com/miniprogram/dev/api/media/image/wx.compressImage.html

    但是我没验证这个方法支持不支持pc端的小程序。

    如果不支持,你可以用canvas把原图重画一次,然后canvasToTempFilePath保存为jpg格式并指定quality压缩比率(0.1-1.0直接的压缩比)方式实现压缩,

    另外,那些推荐后端压缩的,这样多浪费上传时间啊。都已经上传到后端了才开始压缩

    03-29
    有用 2
    回复 1
    • Yhong
      Yhong
      03-29
      谢谢!
      03-29
      回复
  • 小满
    小满
    03-29
    可以的。看您们图片存储用的什么服务。举例说阿里云或者腾讯云存储,图片是可以添加规格的。前端只需要在图片后面添加规格即可。一个5M的图片,添加300,600,900不同的规格即相当于压缩
    03-29
    有用 2
    回复 3
    • Yhong
      Yhong
      03-29
      你能示范一个吗,我查了文档没见这个功能!
      03-29
      回复
    • 小满
      小满
      03-29回复Yhong
      这个你跟后端提一下,这是一个解决方案。
      03-29
      回复
    • Yhong
      Yhong
      03-29回复小满
      OK
      03-29
      回复
  • 拾忆
    拾忆
    03-29

    服务端收到图片后压缩一份提供给小程序端用不就行了?

    03-29
    有用 2
    回复 1
    • Yhong
      Yhong
      03-29
      恩,如果前端不行,就只能服务端完成了!
      03-29
      回复
  • Stranger
    Stranger
    03-29

    wx.compressImage 在用户上传图片的时候先进行压缩再上传,不过不支持GIF动图

    03-29
    有用 1
    回复 3
    • Yhong
      Yhong
      03-29
      恩,这个有用,第一次看见,
      03-29
      回复
    • Stranger
      Stranger
      03-29回复Yhong
      当然也可以引入裁剪工具,固定一下尺寸
      03-29
      回复
    • Yhong
      Yhong
      03-29
      恩,关键这个pc端不是我做的,我也看不到代码,以后遇到这个也就有思路了,我现在只处理下服务端返回的数据,
      03-29
      回复
登录 后发表内容
问题标签