在html5画布中将文本绘制为图像
Draw Text as image in html5 canvas
我在一个HTML5项目中工作。我想画有边界的文字(如文字注释)。
首先,我画了一个矩形,并在鼠标移动中填充文本,如下所示:
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)语句,并且我也在文本的帮助下在矩形中获取图像数据。
T提前存储大量
如果我理解正确的话,你似乎想测量文本宽度并拆分画布?
我打了一个小例子的原型,解释了如何使用measureText方法:
http://jsfiddle.net/sQ3S7/
实际上,正如您在演示中看到的,它没有返回测量的高度尺寸。因此,您可能需要逐行循环浏览画布,以了解文本的高度
对于我的JS游戏引擎,我做了一个小字体工具,可以做到这一点,并将其导出为JSON格式,也许后面的算法会帮助你:)
http://martens.ms/lycheeJS/tool/Font.html
代码可在github.com/martensms/lichieJS上获得(不能发布超过两个链接,因为我是SO的新手)
~欢呼
相关文章:
- 画布:逐像素绘制图像并请求动画帧计时
- WebGL绘制图像
- 多重绘制图像后画布清除
- 可以'清除Rect后,不要在画布上绘制图像
- 如何在单页应用程序中重新绘制图像
- 画布中的图像在绘制图像后立即消失
- 使用Canvas绘制图像
- 如何在javascript中在图像上绘制图像(没有CSS和HTML)
- 使用模式在 HTML5/JS 中绘制图像
- 绘制并重新绘制图像以模拟动画是行不通的
- Dart Canvas未绘制图像
- 在新窗口中打开时,未在画布中绘制图像
- 在画布上绘制图像并导出打印质量的图像
- 用一个加载项绘制图像阵列
- html画布绘制图像不起作用
- Chrome 31.0 HTML5画布绘制图像
- 用HTML5和Javascript绘制图像
- 在新框架上绘制图像,同时仍然使用P5.js中的利萨茹曲线
- 如何在画布上更快地绘制图像
- 在 HTML5 画布中绘制图像,同时保留图像