1设置一个canvas标签
<canvas style="width: 300px; height: 450px;" id="Canvase" type="2d" ></canvas>
2获取接口数据的图片数据
wx.request({
url: '接口地址', //仅为示例,并非真实的接口地址
data: {
请求参数
},
header: {
'content-type': 'application/json' // 默认值
},
success(res) {
console.log(res);
}
})
2在成功回调中写入
const fs = wx.getFileSystemManager();
var codeimg = wx.env.USER_DATA_PATH + '/' + '.jpg';
fs.writeFile({
filePath: codeimg,
data: res.data.slice(22), // code就是接口返回的base64数据(分割掉前面的data:image/png;base64,)
encoding: 'base64',
success: () => {
// console.log(codeimg);
wx.createSelectorQuery().select('#Canvase').fields({
node: true,
size: true
})
.exec((res) => {
console.log(res);
let ctx = res[0].node.getContext('2d'); //getContext返回Canvas 的绘图上下文
let canvas = res[0].node;
const bg = canvas.createImage();
//背景图片
const image = canvas.createImage();
// 图片高清化
const dpr = wx.getSystemInfoSync().pixelRatio;
res[0].node.width = res[0].node.width * dpr;
res[0].node.height = res[0].node.height * dpr;
// 设置背景图片src
image.src = '背景图片地址'
bg.src = codeimg;
image.onload = function () {
ctx.drawImage(image, 0, 0, 900, 440)
ctx.drawImage(bg, 240, 210, 430, 160);
}
// 将图片保存需要的实例,不写保存可以不需要
that.setData({
ctx:canvas
})
})
}
})