保存圖片到本地有兩種方法,其一是網絡圖片保存到相冊,其二本地圖片保存到相冊。

官方文檔
保存圖片前需要授權,因此我們先授權,代碼如下:
-
//獲取相冊授權
-
wx.getSetting({
-
success(res) {
-
if (!res.authSetting['scope.writePhotosAlbum']) {
-
wx.authorize({
-
scope:'scope.writePhotosAlbum',
-
success() {
-
console.log('授權成功')
-
}
-
})
-
}
-
}
-
})
-
//此方法可以寫在app.js中,也可以寫在調用保存按鈕時。

獲取授權
第一種方法,網絡圖片保存:
-
var imgSrc = "http://yijiao.oss-cn-qingdao.aliyuncs.com/images/http://tmp/wx1b4e5e756cd48af1.o6zAJsws4grEQvYrWTjBigy-6QaU.0llhudiKSF2V955a1c48350d9328ef064b4d36d12746.jpg"
-
wx.downloadFile({
-
url: imgSrc,
-
success: function (res) {
-
console.log(res);
-
//圖片保存到本地
-
wx.saveImageToPhotosAlbum({
-
filePath: res.tempFilePath,
-
success: function (data) {
-
wx.showToast({
-
title: '保存成功',
-
icon: 'success',
-
duration: 2000
-
})
-
},
-
fail: function (err) {
-
console.log(err);
-
if (err.errMsg === "saveImageToPhotosAlbum:fail auth deny") {
-
console.log("當初用戶拒絕,再次發起授權")
-
wx.openSetting({
-
success(settingdata) {
-
console.log(settingdata)
-
if (settingdata.authSetting['scope.writePhotosAlbum']) {
-
console.log('獲取權限成功,給出再次點擊圖片保存到相冊的提示。')
-
} else {
-
console.log('獲取權限失敗,給出不給權限就無法正常使用的提示')
-
}
-
}
-
})
-
}
-
},
-
complete(res){
-
console.log(res);
-
}
-
})
-
}
-
})
第二種方法:選擇相冊圖片存入本地
-
wx.chooseImage({
-
count:1,// 默認9
-
sizeType: ['original','compressed'],// 可以指定是原圖還是壓縮圖,默認二者都有
-
sourceType: ['album','camera'],// 可以指定來源是相冊還是相機,默認二者都有
-
success:function (res) {
-
// 返回選定照片的本地文件路徑列表,tempFilePath可以作為img標簽的src屬性顯示圖片
-
console.log("choose image")
-
console.log(res)
-
var tempFilePath = res.tempFilePaths[0]
-
wx.getImageInfo({
-
src: tempFilePath,
-
success:function (res) {
-
console.log("get image info")
-
console.log(res)
-
wx.saveImageToPhotosAlbum({
-
filePath: res.path,
-
success(res) {
-
console.log("保存圖片成功")
-
console.log(res)
-
wx.showToast({
-
title:'保存成功',
-
icon:'success',
-
duration:2000
-
})
-
},
-
fail(err) {
-
console.log('失敗')
-
console.log(err)
-
-
if (err.errMsg == "saveImageToPhotosAlbum:fail cancel"){
-
wx.openSetting({
-
success(settingdata) {
-
console.log(settingdata)
-
if (settingdata.authSetting["scope.writePhotosAlbum"]) {
-
console.log('獲取權限成功,給出再次點擊圖片保存到相冊的提示。')
-
}else {
-
console.log('獲取權限失敗,給出不給權限就無法正常使用的提示')
-
}
-
}
-
})
-
}
-
}
-
})
-
}
-
})
-
}
-
})
如有疑問,請簡信。
|