保存图片到本地有两种方法,其一是网络图片保存到相册,其二本地图片保存到相册。
官方文档
保存图片前需要授权,因此我们先授权,代码如下:
//获取相册授权 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('获取权限失败,给出不给权限就无法正常使用的提示') } } }) } } }) } }) } })
|