限定最低版本为 1.4 以上。 把字按居左来计算 left,反正 canvas 宽与字号宽有等比关系。
1.1.1 版本 canvas.setTextAlign 无效[代码]ctx = wx.createCanvasContext([代码][代码]'forWechat'[代码][代码])[代码][代码]// 画图[代码][代码]ctx.drawImage([代码][代码]'/img/for-save.jpg'[代码][代码], 0, 0, 1220, 1800);[代码][代码]// 画字[代码][代码]ctx.setFillStyle([代码][代码]'#ffffff'[代码][代码])[代码][代码]ctx.setFontSize(50)[代码][代码]ctx.setTextAlign([代码][代码]'center'[代码][代码]) // 对,这里不起作用[代码][代码]ctx.setTextBaseline && ctx.setTextBaseline([代码][代码]'middle'[代码][代码])[代码][代码]ctx.fillText(userInfo.nickName + [代码][代码]'邀请你一起来0元秒杀'[代码][代码], 610, 640)[代码][代码]ctx.fillText([代码][代码]'资生堂惠润柔净洗发组合'[代码][代码], 610, 730)[代码][代码]ctx.draw()[代码][代码]// 完成[代码][代码]setTimeout(() => {[代码][代码] [代码][代码]wx.canvasToTempFilePath({[代码][代码] [代码][代码]x: 0,[代码][代码] [代码][代码]y: 0,[代码][代码] [代码][代码]width: 1220,[代码][代码] [代码][代码]height: 1800,[代码][代码] [代码][代码]destWidth: 1220,[代码][代码] [代码][代码]destHeight: 1800,[代码][代码] [代码][代码]fileType: [代码][代码]'jpg'[代码][代码],[代码][代码] [代码][代码]canvasId: [代码][代码]'forWechat'[代码][代码],[代码][代码] [代码][代码]success: res => {[代码][代码] [代码][代码]console.log([代码][代码]'图片生成'[代码][代码], res.tempFilePath)[代码][代码] [代码][代码]img = res.tempFilePath[代码][代码] [代码][代码]wx.setStorageSync([代码][代码]'saveImg'[代码][代码], img)[代码][代码] [代码][代码]callback && callback(img)[代码][代码] [代码][代码]}[代码][代码] [代码][代码]})[代码][代码]}, 500)[代码] [图片]
2018-06-11