收藏
回答

canvas压缩图片问题

我在手机上选择一张图片之后进行canvas压缩重新生成图片,然后用canvasToTempFilePath导出图片再上传到后台,可是后台处理不了这个图片,不压缩图片传到后台实在太大了。请问该如何去压缩图片。

var types = e.currentTarget.dataset.zp

   var that = this;

   wx.chooseImage({

     count: 1,

     sizeType: ['compressed'],

     success: function(photo) {

       wx.getImageInfo({

         src: photo.tempFilePaths[0],

         success: function(res) {

           console.log(res)

           var ctx = wx.createCanvasContext('attendCanvasId');          

           //设置canvas尺寸

           ctx.drawImage(photo.tempFilePaths[0], 0, 0, 300, 160)

           //将图片填充在canvas上        

           ctx.draw()

           //下载canvas图片

           setTimeout(function() {

             wx.canvasToTempFilePath({

               canvasId: 'attendCanvasId',

               success: function(res) {

                 console.log(res.tempFilePath)

                 if (types == 'zm'){

                   that.setData({

                     zm: res.tempFilePath,

                   })

                 }else{

                   that.setData({

                     fm: res.tempFilePath,

                   })

                 }                      

               }

             })

           }, 100)

         }

       })

     }

   })


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

1 个回答

  • 卢霄霄
    卢霄霄
    2018-09-28

    canvasToTempFilePath 建议你放到 ctx.draw的回调里哈。。

    生成的图,能放个链接出来吗?

    2018-09-28
    有用
    回复 7
    • 2018-09-28

      返回的路径是这样的,用浏览器也打不开

      http://tmp/wx90a9d06d5002244b.o6zAJs1p2N8ZC9p6LP-ENCbvfMkk.yB7fPlk0hck42cd30b0ca0fb78fb1873a0cca9d3a4f6.png

      2018-09-28
      回复
    • 卢霄霄
      卢霄霄
      2018-09-28回复

      这个是个临时文件路径,只有小程序里能识别哦,uploadFile的时候,有啥问题吗?

      2018-09-28
      回复
    • 2018-09-28回复卢霄霄

      上传文件的时候没有问题 就是后台处理不了上传的东西

      2018-09-28
      回复
    • 卢霄霄
      卢霄霄
      2018-09-28回复

      这个就是个单纯的文件,二进制文件流,你后端直接把文件流保存起来就行了啊

      2018-09-28
      回复
    • 2018-09-28回复卢霄霄

      好的

      2018-09-28
      回复
    查看更多(2)
登录 后发表内容