首頁  >  文章  >  web前端  >  微信小程式圖片壓縮功能的實作方法

微信小程式圖片壓縮功能的實作方法

小云云
小云云原創
2018-01-27 09:32:484065瀏覽

本文主要為大家詳細介紹了微信小程式實現圖片壓縮功能,具有一定的參考價值,有興趣的小夥伴們可以參考一下,希望能幫助到大家。

小龍大哥的微信小程式在初始階段相當於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(&#39;attendCanvasId&#39;);
   ctx.drawImage(tempFilePaths[0], 0, 0, 94, 96);
   ctx.draw();
   that.prodImageOpt();
  }
  }
 });
 },

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

再點擊拍照後,IOS的進行了圖片壓縮功能,然而,安卓的依然是那麼大,所以在這過程中,我們需要判斷下當前機型,然後執行canvas壓縮。

上述程式碼,拿到即可用,但少一部分wxml中需要加入一個canvas標籤。

進行介面呼叫。希望對大家有幫助。

相關推薦:

JS中圖片壓縮實作方法

推薦10款常用的圖片壓縮上傳用法,歡迎下載!

HTML5實作圖片壓縮上傳功能的深度解析


#

以上是微信小程式圖片壓縮功能的實作方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn