/** * 绘制分享图片 */function drawImage(page){ if (page != null && page != '' && page != undefined){ var that = page; const ctx = wx.createCanvasContext('myCanvas') var partner_data = that.data.partner_data; var bj = partner_data.photo; //背景图片和昵称 var txPath = bj ? bj : that.data.imgSrcList[7]; var bjPath = that.data.imgSrcList[8]; var qrCode = that.data.qrcode_temp; var hostNickname = app.globalData.userInfo.nickName; //绘制背景图片 ctx.setFillStyle('#FFFEFF'); ctx.drawImage(bjPath,0,0,380,426); ctx.drawImage(txPath, 0, 0, 137, 192); //绘制小程序码: ctx.drawImage(qrCode, 122, 220, 136, 136); //绘制标题 ctx.setFontSize(15); ctx.setFillStyle("#f56400"); ctx.fillText(partner_data.partner_name, 315, 30) ctx.setFillStyle("#ffffff"); ctx.setFontSize(20) ctx.fillText(partner_data.name, 149, 50) ctx.fillText(partner_data.title, 149, 80) ctx.setFontSize(13) ctx.fillText(partner_data.depart, 165, 103) ctx.fillText(partner_data.phone, 165, 122) ctx.fillText(partner_data.email, 165, 142) ctx.fillText(partner_data.address, 165, 162) ctx.setFillStyle("black"); ctx.fillText('长按识别二维码 收下名片', 120, 378) ctx.draw( false, setTimeout(function(){ canvasToImage(that) },200) ) }}/** * 分享图片生成临时文件 */function canvasToImage(page){ if (page != null && page != '' && page != undefined) { var that = page; wx.canvasToTempFilePath({ x: 0, y: 0, fileType:'png', width: 380, height: 426, destWidth: 380 * 4, destHeight: 426 * 4, canvasId: 'myCanvas', success: function (res) { //展示窗口 that.setData({ showShareWindow: true, sharePicture: res.tempFilePath }) }, fail: function (err) { wx.showToast({ icon: 'none', title: '生成分享图片失败' }) } },that) }} |
在开发工具上表现出来的结果是正常的
但是用手机真机调试发现背景图没有画出来,同时fillText()的所有信息也没能写上
当我保存到手机上时,在相册中打开,发现 fillText() 的信息倒是写上了,但是还是没有背景图
三处表现不一,这怎么解决?

确实问题很多。
不仅是背景图和人物信息没有画上去,左上角有个头像也没画上去