drawImageToCanvas() {
const query = wx.createSelectorQuery();
query.select("#canvas").fields({
node: true,
size: true
}).exec(e1 => {
console.log('图像处理', "#canvas", 'wx.createSelectorQuery', e1);
const canvas = e1[0].node;
this.setData({
canvas: canvas
})
const ctx = canvas.getContext('2d');
// ctx.clearRect(0, 0, e1[0].width, e1[0].height);
ctx.mozImageSmoothingEnabled = false;
ctx.webkitImageSmoothingEnabled = false;
ctx.msImageSmoothingEnabled = false;
ctx.imageSmoothingEnabled = false;
canvas.width = this.data.imgWidth;
canvas.height = this.data.imgHeight;
if (this.data.path) {
const img = canvas.createImage();
img.onload = (e2) => {
console.log("图像处理", "#canvas", 'img.onload', e2);
ctx.beginPath()
const round = (this.data.imgWidth > this.data.imgHeight ? this.data.imgHeight : this.data.imgWidth) / 2 * (this.data.round / 100.0)
console.log(round)
ctx.arc(round, round, round, Math.PI, Math.PI * 1.5)
ctx.arc(this.data.imgWidth - round, round, round, Math.PI * 1.5, Math.PI * 2)
ctx.arc(this.data.imgWidth - round, this.data.imgHeight - round, round, 0, Math.PI * 0.5)
ctx.arc(round, this.data.imgHeight - round, round, Math.PI * 0.5, Math.PI)
ctx.clip()
ctx.drawImage(img, 0, 0, this.data.imgWidth, this.data.imgHeight);
};
img.src = this.data.path;
} else {}
});
}
预览效果