保存图片到本地有两种方法,其一是网络图片保存到相册,其二本地图片保存到相册。

保存图片前需要授权,因此我们先授权,代码如下:
//获取相册授权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,// 默认9sizeType: ['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('获取权限失败,给出不给权限就无法正常使用的提示')}}})}}})}})}})转载 https://www.jianshu.com/p/5479041607fa













