微信小程序 canvas绘制多行文本(文本换行)

效果图

https://www.jianshu.com/p/4d2711cd104b

代码实现

/**
 *【drawTxt】canvas 绘制多行文本
 *【TODO: 中英混排且考虑单词截断...】
 * 
 * @param {*} context 绘制上下文环境 【必传】
 * @param {*} scale 缩放比  windowWidth / 750
 * @param {*} text 文本内容
 * @param {*} broken 单词是否截断显示  【true  如果不考虑英文单词的完整性 适用于所有情况】 【false  考虑英文单词的完整性 仅适用于纯英文】
 * @param {*} fillStyle 文本颜色
 * @param {*} fontSize 文本大小
 * @param {*} x 文本左上角x坐标
 * @param {*} y 文本左上角y坐标
 * @param {*} lineHeight 行高
 * @param {*} maxWidth 最大宽度
 * @returns  此次绘制文本的高度 单位: px
 */

function drawTxt({context, scale = 0.5, text = 'test text', fillStyle = '#000', broken = true, ...rest}) {
  if (!context) throw Error('请传入绘制上下文环境context')
  // 默认设置
  let origin = {x: 0, y: 0, lineHeight: 30, maxWidth: 630 , fontSize: 28}

  // 比例计算正确的尺寸
  for (let item in rest)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值