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": "保存图片到相册"}}
}