小程序canvas保存图片微信工具上和手机上样式不一样?

下面是关于canvas绘制的关于文字大小的一些关键性代码:

 // 绘制微信名称
    ctx.font = (24/ _this.ratio*_this.devicePixelRatio) + "px sans-serif"
    ctx.fillStyle = '#212121'
    ctx.fillText(`${this.doctorData.DoctorName}-[${this.doctorData.DeptName}]`, (205 / _this.ratio), (110 / _this.ratio))//描绘文本
                
                
  row.push(temp)
                      ctx.font = (30/ _this.ratio) + "px"
                      ctx.fillStyle = "#9E9E9E"
                      for (var b = 0; b < row.length; b++) {
                        ctx.fillText(row[b], x, y + (b + 1) * 15)
                      }
                
                      // 把二维码图片绘制到画布中
                      ctx.drawImage(_this.imgUrler, (205 / _this.ratio), (300 / _this.ratio), (340 / _this.ratio), (340 / _this.ratio), (140 / _this.ratio), (375 / _this.ratio))//描绘图片
                
   ctx.font = (34 / _this.ratio) + "px"
                      ctx.fillStyle = "#212121"
                      ctx.textAlign = 'center'
                      ctx.fillText('用微信扫描二维码查看医生信息', (375 / _this.ratio), (750 / _this.ratio))//描绘文本

下面的图片是通过canvas绘制并直接保存到手机上的。
现在的问题是:在微信开发工具上保存下面的canvas图片和手机上保存下来的图片不一样:
下面是微信工具保存的图片效果:
image.png
下面是手机上保存的图片效果:
image.png

如下所示:微信开发工具的几乎没什么问题,但是绘制canvas时会有:

Failed to set 'font' on 'CanvasContext': invalid format.的错误提示

这个提示手机上绘制时也会有,但是好像微信开发工具上的没什么影响,但是手机上的好像font属性没起作用。

有人遇到过这样的问题吗?
下面是微信开发工具:
image.png
下面是我手机:
image.png

阅读 1.2k
2 个回答
ctx.font = '700 15px sans-serif' //这个在微信开发工具是没有问题,但是手机上不行
// 需要添加setFontSize
ctx.setFontSize(36); // 36:字体大小  //手机上字体设置要用这个。
ctx.fillText('文案', x, y)

利用模版字符串 补全字体格式 同时兼顾 devicePixelRatio的问题
ctx.font = 400 ${(34 / _this.ratio) * window.devicePixelRatio}px Source Sans Pro
image.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进