Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在html5画布中将文本绘制为图像_Javascript_Html_Text_Annotations - Fatal编程技术网

Javascript 在html5画布中将文本绘制为图像

Javascript 在html5画布中将文本绘制为图像,javascript,html,text,annotations,Javascript,Html,Text,Annotations,我在一个HTML5项目中工作。我想画有边界的文本(即文本注释) 首先,我在mousemove上绘制一个矩形并在其中填充文本,如下所示: context.strokeRect(x,y,w,h); context.fillText('Enter youe text here',x,y); 但当我开始绘制文本注释时,文本将完全绘制。因此文本溢出到矩形边界之外。所以我想拍摄矩形部分的图像,然后我可以处理文本的溢出问题。我使用以下方法来完成此操作:- context.strokeRect(x,y,w,

我在一个HTML5项目中工作。我想画有边界的文本(即文本注释)

首先,我在mousemove上绘制一个矩形并在其中填充文本,如下所示:

context.strokeRect(x,y,w,h);
context.fillText('Enter youe text here',x,y);
但当我开始绘制文本注释时,文本将完全绘制。因此文本溢出到矩形边界之外。所以我想拍摄矩形部分的图像,然后我可以处理文本的溢出问题。我使用以下方法来完成此操作:-

 context.strokeRect(x,y,w,h);
 context.fillText('Enter youe text here',x,y);
 var imageData = context.getImageData(x,y,w,h);
 var data = imageData.data;
 context.putImageData(imageData, x,y);
通过这种方式,文本图像成功地在创建,但现在我如何隐藏fillText(x,y,w,h)语句,并且在文本的帮助下在矩形内获取图像数据


事先非常感谢

如果我理解正确,您似乎想测量文本宽度并将画布拆分

我制作了一个小示例,解释了如何使用measureText方法:

实际上,正如您在演示中看到的,它没有返回测量的高度标注。因此,您可能需要一行一行地循环浏览画布,以了解文本的高度

对于我的JS游戏引擎,我做了一个小字体工具,它可以做到这一点,并将其导出为JSON格式,也许后面的算法可以帮助您:)

代码可在github.com/martensms/lycheeJS上找到 (不能发布超过两个链接,因为我是SO新手)


~Cheers

你问了“11个问题”,你必须接受几个问题才能提高评分:)好的,我已经检查了对我有用的答案。那么现在我如何在矩形内绘制图像呢