美文网首页
canvas 渲染多行文字

canvas 渲染多行文字

作者: 未來Miral | 来源:发表于2018-12-04 16:49 被阅读0次
    /**
     * @param {Object} ctx canvas上下文
     * @param {String} text 需要输入的文本
     * @param {Number} x X轴起始位置
     * @param {Number} y Y轴起始位置
     * @param {Number} maxWidth 单行最大宽度
     * @param {Number} lineHeight 行高
     */
    function drawText(ctx, text, x, y, maxWidth, lineHeight) {
        let canvas = ctx.canvas;
        let arrText = text.split('');
        let line = '';
        for (let n = 0; n < arrText.length; n++) {
            let testLine = line + arrText[n];
            let metrics = ctx.measureText(testLine);
            let testWidth = metrics.width;
            if (testWidth > maxWidth && n > 0) {
                ctx.fillText(line, x, y);
                line = arrText[n];
                y += lineHeight;
             } else {
                line = testLine;
             }
        }
        ctx.fillText(line, x, y);
    }
    

    相关文章

      网友评论

          本文标题:canvas 渲染多行文字

          本文链接:https://www.haomeiwen.com/subject/erhvcqtx.html