【发布时间】:2012-05-16 05:11:26
【问题描述】:
我正在使用画布创建一些图像。我希望能够在画布上以给定的矩形(即偏移 x、偏移 y、宽度和高度)绘制文本,并且该文本尽可能大而不会溢出,如果可能的话,使用自动换行。有可能吗?
【问题讨论】:
标签: javascript text canvas drawing
我正在使用画布创建一些图像。我希望能够在画布上以给定的矩形(即偏移 x、偏移 y、宽度和高度)绘制文本,并且该文本尽可能大而不会溢出,如果可能的话,使用自动换行。有可能吗?
【问题讨论】:
标签: javascript text canvas drawing
这是可能的。
无包装:
您可以使用CanvasRenderingContext2D.measureText() 方法,它接受一个字符串,并返回一个对象{ width: float }。您必须通过使用字体大小进行一些数学运算来找出高度。然后只需以二进制搜索方式枚举字体大小。很快你就会找到最适合画布的尺寸。
包装: 您必须找出字符串中的包装点并自己计算它们的宽度和高度。
但有更好更简单的方法来做到这一点。
创建一个 hidden(visibility: hidden not display: none) div,定义它的宽度,然后把你的文本放进去。枚举字体的大小,并检查它是否溢出或增长太高。
【讨论】: