1.使用wx.canvasToTempFilePath
将二维码绘制到画布上。
const ctx = wx.createCanvasContext('qrcodeCanvas'); ctx.drawImage('qrcodePath', 0, 0, canvasWidth, canvasHeight); ctx.draw(false, () => { wx.canvasToTempFilePath({ x: 0, y: 0, width: canvasWidth, height: canvasHeight, destWidth: canvasWidth, destHeight: canvasHeight, canvasId: 'qrcodeCanvas', success: (res) => { const tempFilePath = res.tempFilePath; // 接下来进行保存操作 }, fail: (err) => { console.error('canvasToTempFilePath failed', err); } }); });
2.利用wx.saveImageToPhotosAlbum
保存绘制的二维码图片到相册。
wx.saveImageToPhotosAlbum({ filePath: tempFilePath, success: (res) => { console.log('saveImageToPhotosAlbum success', res); wx.showToast({ title: '保存成功', icon: 'success', duration: 2000 }); }, fail: (err) => { console.error('saveImageToPhotosAlbum failed', err); wx.showToast({ title: '保存失败', icon: 'none', duration: 2000 }); } });
需要注意的是,保存图片到相册需要用户授权,因此在调用wx.saveImageToPhotosAlbum
之前,开发者需要先调用wx.getSetting
获取用户的授权状态,并在用户同意授权后才能执行保存操作。
3.另外,在小程序的app.json
文件中,需要添加相应的权限声明:
{ "permission": { "scope.userLocation": { "desc": "保存图片到相册" } } }