Mini Program canvas picture covers the text, how can the text be displayed?

problem description

the position of Chinese characters on Mini Program canvas is overwritten

the environmental background of the problems and what methods you have tried

related codes

/ / Please paste the code text below (do not replace the code with pictures)
/ / start drawing
createNewImg: function () {

let that = this;
let ctx = wx.createCanvasContext("myCanvas");
let contentHeight = this.data.canvasHeight;

// 
this.drawSquare(ctx, contentHeight);

// 
wx.getImageInfo({
  src: that.data.commonUrl + "card1.png",
  success: function(res) {
    ctx.drawImage(res.path, 0, 0, that.data.canvasWidth, contentHeight*0.90);
    // 
    that.drawAvtar(ctx);
  }
})
// // 
that.drawFont(ctx, "! ~", this.data.canvasWidth * 0.05, contentHeight * 0.98);
//  
that.drawFont(ctx, "", this.data.canvasWidth * 0.01, contentHeight * 0.67);

},
/ / draw a rectangular container
drawSquare: function (ctx, height) {

ctx.rect( 0, 0, this.data.canvasWidth, height);
ctx.setFillStyle("-sharpFFFFFF");
ctx.fill();

},

/ / draw an avatar
drawAvtar: function (ctx) {

let that = this
let avatarurl_width = 40; //
let avatarurl_heigth = 40; //
let avatarurl_x = this.data.canvasWidth * 0.09; //
let avatarurl_y = this.data.canvasHeight * 0.383; //
ctx.save();
ctx.beginPath(); //
//    x,y       false
ctx.arc(avatarurl_width / 2 + avatarurl_x, avatarurl_heigth / 2 + avatarurl_y, avatarurl_width / 2, 0, Math.PI * 2, false);
// 
ctx.setStrokeStyle("black");
ctx.stroke();
//    save 

wx.getImageInfo({
  src: that.data.userInfo.avatarUrl,
  success: function(res) {
    ctx.drawImage(res.path, avatarurl_x, avatarurl_y, avatarurl_width, avatarurl_heigth)
    //  
    ctx.restore()
  }
})
// 
that.drawQrcode(ctx);

},

/ / draw Mini Program"s QR code
drawQrcode: function (ctx) {

let that = this
let avatarurl_width = 70; //
let avatarurl_heigth = 70; //
let avatarurl_x = this.data.canvasWidth * 0.10; //
let avatarurl_y = this.data.canvasHeight * 0.73; //
ctx.save();
ctx.beginPath();
ctx.arc(avatarurl_width / 2 + avatarurl_x, avatarurl_heigth / 2 + avatarurl_y, avatarurl_width / 2, 0, Math.PI * 2, false);
ctx.setStrokeStyle("white");
ctx.stroke();
ctx.clip();
wx.getImageInfo({
  src: that.data.qrCode,
  success: function(res) {
    ctx.drawImage(res.path, avatarurl_x, avatarurl_y, avatarurl_width, avatarurl_heigth)
    ctx.restore();
    wx.hideLoading();
    ctx.draw();
  }
})

},

/ / write
drawFont: function (ctx, content, x, y, color) {

console.log(content);
let tmpColor = color ? color : "-sharp484a3d"
let tmpFont = color ? "16" : "14"
ctx.setFontSize(tmpFont);
ctx.setFillStyle(tmpColor);
ctx.fillText(content, x, y);

},

what result do you expect? What is the error message actually seen?

is there a solution

?
May.13,2021


// 
wx.getImageInfo({
  src: that.data.commonUrl + 'card1.png',
  success: function(res) {
    ctx.drawImage(res.path, 0, 0, that.data.canvasWidth, contentHeight*0.90);
    // 
    that.drawAvtar(ctx);
    
    //
    that.drawFont(ctx, '! ~', this.data.canvasWidth * 0.05, contentHeight * 0.98);
    //  
    that.drawFont(ctx, '', this.data.canvasWidth * 0.01, contentHeight * 0.67);
  }
})
MySQL Query : SELECT * FROM `codeshelper`.`v9_news` WHERE status=99 AND catid='6' ORDER BY rand() LIMIT 5
MySQL Error : Disk full (/tmp/#sql-temptable-64f5-1be51b9-3173c.MAI); waiting for someone to free some space... (errno: 28 "No space left on device")
MySQL Errno : 1021
Message : Disk full (/tmp/#sql-temptable-64f5-1be51b9-3173c.MAI); waiting for someone to free some space... (errno: 28 "No space left on device")
Need Help?