微信小程序?qū)崿F(xiàn)圖片壓縮功能
小龍大哥的微信小程序在初始階段相當(dāng)于IE界的6,在這里給大家說一個剛趟過去的坑。
拍照的API。
wx.chooseImage({
count: 1, // 默認(rèn)9
sizeType: ['original', 'compressed'], // 可以指定是原圖還是壓縮圖,默認(rèn)二者都有
sourceType: ['album', 'camera'], // 可以指定來源是相冊還是相機(jī),默認(rèn)二者都有
success: function (res) {
// 返回選定照片的本地文件路徑列表,tempFilePath可以作為img標(biāo)簽的src屬性顯示圖片
var tempFilePaths = res.tempFilePaths;
}
});
在上邊,明確的給出大小的類型,本想省事,然并沒有什么用…..
廢話少說,給大家說下IOS和安卓中差別,拍照圖片壓縮的坑。
// 點(diǎn)擊照相
takePictures:function(){
var that = this;
wx.chooseImage({
count: 1, // 默認(rèn)9
sizeType: ['compressed'], // 可以指定是原圖還是壓縮圖,默認(rèn)二者都有
sourceType: ['camera'], // 可以指定來源是相冊還是相機(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中需要添加一個canvas標(biāo)簽。
進(jìn)行接口調(diào)用。希望對大家有幫助。
為大家推薦現(xiàn)在關(guān)注度比較高的微信小程序教程一篇:《微信小程序開發(fā)教程》小編為大家精心整理的,希望喜歡。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
深入淺析JavaScript系列(13):This? Yes,this!
在這篇文章里,我們將討論跟執(zhí)行上下文直接相關(guān)的更多細(xì)節(jié)。討論的主題就是this關(guān)鍵字。實(shí)踐證明,這個主題很難,在不同執(zhí)行上下文中this的確定經(jīng)常會發(fā)生問題2016-01-01
uni-app小程序分享功能實(shí)現(xiàn)方法舉例
這篇文章主要給大家介紹了關(guān)于uni-app小程序分享功能實(shí)現(xiàn)方法的相關(guān)資料,uni-app中有分享的API接口,但是需要現(xiàn)在QQ或者微信等開發(fā)者平臺上注冊賬號,驗證公司信息,而且只能分享圖片或者文本等內(nèi)容,需要的朋友可以參考下2023-07-07
javascript使用正則表達(dá)式實(shí)現(xiàn)注冊登入校驗
這篇文章主要為大家詳細(xì)介紹了javascript使用正則表達(dá)式實(shí)現(xiàn)注冊登入校驗,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-09-09
JS實(shí)現(xiàn)三個層重疊點(diǎn)擊互相切換的方法
這篇文章主要介紹了JS實(shí)現(xiàn)三個層重疊點(diǎn)擊互相切換的方法,涉及JavaScript動態(tài)操作頁面定位屬性的相關(guān)技巧,需要的朋友可以參考下2015-10-10
解決bootstrap中使用modal加載kindeditor時彈出層文本框不能輸入的問題
這篇文章主要介紹了解決bootstrap中使用modal加載kindeditor時彈出層文本框不能輸入的問題,需要的朋友可以參考下2017-06-06

