小龍大哥的微信小程序在初始階段相當(dāng)于IE界的6,在這里給大家說一個(gè)剛趟過去的坑。
拍照的API。
wx.chooseImage({ count: 1, // 默認(rèn)9 sizeType: ['original', 'compressed'], // 可以指定是原圖還是壓縮圖,默認(rèn)二者都有 sourceType: ['album', 'camera'], // 可以指定來源是相冊(cè)還是相機(jī),默認(rèn)二者都有 success: function (res) { // 返回選定照片的本地文件路徑列表,tempFilePath可以作為img標(biāo)簽的src屬性顯示圖片 var tempFilePaths = res.tempFilePaths; } });
在上邊,明確的給出大小的類型,本想省事,然并沒有什么用…..
廢話少說,給大家說下IOS和安卓中差別,拍照?qǐng)D片壓縮的坑。
// 點(diǎn)擊照相 takePictures:function(){ var that = this; wx.chooseImage({ count: 1, // 默認(rèn)9 sizeType: ['compressed'], // 可以指定是原圖還是壓縮圖,默認(rèn)二者都有 sourceType: ['camera'], // 可以指定來源是相冊(cè)還是相機(jī),默認(rèn)二者都有 success: function (res) { // 返回選定照片的本地文件路徑列表,tempFilePath可以作為img標(biāo)簽的src屬性顯示圖片 var tempFilePaths = res.tempFilePaths; that.setData({ attendSuccessImg:tempFilePaths[0] }); // 上傳圖片 //判斷機(jī)型 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) { } }); },
再點(diǎn)擊拍照后,IOS的進(jìn)行了圖片壓縮功能,然而,安卓的依然是那么大,所以 在這過程中,我們需要判斷下當(dāng)前機(jī)型,然后執(zhí)行canvas壓縮。
上述代碼,拿到即可用,但少一部分wxml中需要添加一個(gè)canvas標(biāo)簽。
進(jìn)行接口調(diào)用。希望對(duì)大家有幫助。
相信看了本文案例你已經(jīng)掌握了方法,更多精彩請(qǐng)關(guān)注Gxl網(wǎng)其它相關(guān)文章!
推薦閱讀:
jQuery代碼優(yōu)化方式的總結(jié)
360瀏覽器兼容模式的頁(yè)面顯示不全怎么處理
Node.js的非對(duì)稱加密詳解
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com