微信小程序图片压缩

微信小程序图片压缩

小龙大哥的微信小程序在初始阶段相当于IE界的6,在这里给大家说一个刚趟过去的坑。
拍照的API
wx.chooseImage({
    count: 1, // 默认9
    sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
    sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
    success: function (res) {
          // 返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片
        var tempFilePaths = res.tempFilePaths; 
    }
});

在上边,明确的给出大小的类型,本想省事,然并卵…..
废话少说,给大家说下IOS和安卓中差别,拍照图片压缩的坑。

// 点击照相
  takePictures:function(){
    var that = this;
    wx.chooseImage({
      count: 1, // 默认9
      sizeType: ['compressed'], // 可以指定是原图还是压缩图,默认二者都有
      sourceType: ['camera'], // 可以指定来源是相册还是相机,默认二者都有
      success: function (res) {
        // 返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片
        var tempFilePaths = res.tempFilePaths;

        that.setData({
          attendSuccessImg:tempFilePaths[0]
        });

        // 上传图片
        //判断机型
      var model = "";
       wx.getSystemInfo({
          success:function(res){
          model= res.model;
          }
        })
        if(model.indexOf("iPhone") <= 0){
         that.uploadFileOpt(that.data.attendSuccessImg);
         console.log(111111)
        }else{
          drawCanvas();

        }

        // 缩放图片
        function drawCanvas(){
          const ctx = wx.createCanvasContext('attendCanvasId');
          ctx.drawImage(tempFilePaths[0], 0, 0, 94, 96);
          ctx.draw();
          that.prodImageOpt();
        }
      }
    });
  },

  // 生成图片
  prodImageOpt:function(){
    var that = this;
    wx.canvasToTempFilePath({ 
      canvasId: 'attendCanvasId',
      success: function success(res) {
        that.setData({
          canvasImgUrl:res.tempFilePath
        });
        // 上传图片
        that.uploadFileOpt(that.data.canvasImgUrl);
      },
      complete: function complete(e) {
      }
    });
  },

再点击拍照后,IOS的进行了图片压缩功能,然而,安卓的依然是那么大,所以
在这过程中,我们需要判断下当前机型,然后执行canvas压缩。
上述代码,拿到即可用,但少一部分wxml中需要添加一个canvas标签。
进行接口调用。希望对大家有帮助。

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值