微信小程序canvas画布绘制
wx.createSelectorQuery()
.select('#canvas')
.fields({ node: true, size: true })
.exec(res => {
let ctx = res[0].node.getContext('2d');//getContext返回Canvas 的绘图上下文
let canvas = res[0].node;
img=canvas;
console.log(img);
// 通过设备的像素比等重新绘制宽高
const dpr = wx.getSystemInfoSync().pixelRatio
canvas.width = 500 * dpr
canvas.height = 900 * dpr
ctx.scale(dpr, dpr)
console.log(res[0].width * dpr);
console.log(res[0].height * dpr);
let image = canvas.createImage();//创建iamge实例
image.src = 'https://xxxxxxxxx';
image.onload = function (rrr) {
ctx.drawImage(image, 0, 40, 500, 820);
}
let image1 = canvas.createImage();//创建iamge实例
image1.src = 'https://xxxxxxxx';
image1.onload = function (rrr) {
ctx.drawImage(image1, 110, 435, 290, 290);
}
})
wx.createSelectorQuery().select('#canvas').boundingClientRect(function(res) {
console.log(res);
}).exec();
微信小程序 canvas画布图片保存
wx.canvasToTempFilePath({
// 把画布转化成临时文件
x: 0,
y: 0,
width: 500, // 截取的画布的宽
height: 900, // 截取的画布的高
destWidth: 500, // 保存成的画布宽度
destHeight: 900, // 保存成的画布高度
fileType: 'jpg', // 保存成的文件类型
quality: 1, // 图片质量
canvas:img, // 画布ID
success(res) {
console.log(res.tempFilePath)
// 2-保存图片至相册
wx.saveImageToPhotosAlbum({
// 存成图片至手机
filePath: res.tempFilePath,
success(res2) {
wx.showToast({
title: '保存成功',
duration: 2000
});
},
fail(res3) {
if (res3.errMsg === 'saveImageToPhotosAlbum:fail auth deny') {
wx.showToast({
title: '保存失败,稍后再试',
duration: 2000,
icon: 'none'
});
} else {
wx.showToast({
title: '保存失败,稍后再试',
duration: 2000,
icon: 'none'
});
}
}
});
},
fail(error) {
console.log(error);
wx.showToast({
title: '保存失败,稍后再试',
duration: 2000,
icon: 'none'
});
}
});