如何在画布上绘制适合给定矩形的文本
How to draw text fitting in a given rectangle on a canvas?
我正在使用画布创建一些图像。我希望能够在画布上以给定的矩形(即偏移 x、偏移 y、宽度和高度)绘制文本,并且该文本尽可能大而不会溢出,如果可能的话,使用自动换行。可能吗?
这是可能的。
-
无包装:您可以使用
CanvasRenderingContext2D.measureText()
方法,该方法接受字符串并返回对象 { width: float }。您必须通过使用字体的大小进行一些数学计算来找出高度。然后只需以二叉搜索方式枚举字体大小。很快,您就会找到最适合画布的尺寸。 -
包皮:您必须找出字符串中的包装点并自己计算它们的宽度和高度。
但是有一种更好的更简单的方法可以做到这一点。
创建一个隐藏(可见性:隐藏不显示:无)div,定义其宽度,并将文本放入其中。 枚举字体的大小,并检查它是否溢出或增长得太高。
相关文章:
- 将文本工具添加到绘制应用程序HTML5画布
- 在html5画布中将文本绘制为图像
- 画布文本不是在图像上绘制的
- 如何在D3 SVG上绘制文本,如果它's的边界框符合某些标准
- 使用javascript绘制多个以数组元素为文本中心的圆
- 如何在拉斐尔.js中绘制文本框
- HTML5 绘制位于顶部的文本
- 在 HTML5 中使用 Canvas Kinetic 绘制许多文本并进行编辑
- 如何在画布上绘制适合给定矩形的文本
- 动态读取属性文件并在 javascript 中绘制文本框
- HTML5 画布:绘制的换行旋转文本的自动字体大小
- 如何在 D3 中的矩形中绘制文本
- 使用Raphael.js高效绘制文本
- 如何使用HTML 5 Canvas绘制“沿弧形的文本”路径
- 如何在画布上绘制文本,该文本遵循使用二次曲线方法绘制的二次曲线
- HTML5画布:沿着文本基线绘制线条
- 使用d3.js在svg路径元素上绘制文本
- 输入纬度和经度以从文本区域绘制多边形
- 使用Raphael's库绘制左对齐文本
- 如何在文本上绘制这种动画呢?