Javascript 如何在画布上绘制适合给定矩形的文本?

Javascript 如何在画布上绘制适合给定矩形的文本?,javascript,text,canvas,drawing,Javascript,Text,Canvas,Drawing,我正在使用画布创建一些图像。我希望能够在画布上以给定的矩形(即偏移量x、偏移量y、宽度和高度)绘制文本,并且该文本尽可能大而不会溢出,如果可能,还可以使用换行。有可能吗?有可能 无包装: 您可以使用CanvasRenderingContext2D.measureText()方法,该方法接受字符串并返回对象{width:float}。你必须用字体的大小计算出高度。然后以二进制搜索方式枚举字体大小。很快你就会找到画布的最佳尺寸 包装: 你必须找出绳子上的包裹点,然后自己计算它们的宽度和高度 但是有一

我正在使用画布创建一些图像。我希望能够在画布上以给定的矩形(即偏移量x、偏移量y、宽度和高度)绘制文本,并且该文本尽可能大而不会溢出,如果可能,还可以使用换行。有可能吗?

有可能

  • 无包装: 您可以使用
    CanvasRenderingContext2D.measureText()
    方法,该方法接受字符串并返回对象{width:float}。你必须用字体的大小计算出高度。然后以二进制搜索方式枚举字体大小。很快你就会找到画布的最佳尺寸

  • 包装: 你必须找出绳子上的包裹点,然后自己计算它们的宽度和高度

  • 但是有一个更好更简单的方法来做到这一点

    创建一个隐藏(可见性:隐藏而非显示:无)div,定义其宽度,并将文本放入其中。枚举字体大小,并检查其是否溢出或增长过大