html5画布-如何拉伸文本
html5 canvas - How can I stretch text?
在我的html 5
画布中,我绘制文本(必须在一行上),但它需要是恒定的字体大小和样式,并且我的空间宽度也是恒定的。因此,文本需要适合该空间,但当文本过长并超出该空间时,就会出现问题。
那么,有没有一种方法可以水平拉伸/压缩文本?(如PhotoShop)
比如将其转换为图像,然后更改图像的宽度?不确定这是否是最好的方式。。。
感谢
您可以使用measureText
首先确定文本的大小,然后根据需要缩放画布:http://jsfiddle.net/eGjak/887/.
var text = "foo bar foo bar";
ctx.font = "30pt Arial";
var width = ctx.measureText(text).width;
if(width <= 100) {
ctx.fillText(text, 0, 100);
} else {
ctx.save();
ctx.scale(100 / width, 1);
ctx.fillText(text, 0, 100);
ctx.restore();
}
一个简单的解决方案是在另一个(内存中)画布中绘制文本,然后使用drawImage将画布内容粘贴到真实的目标画布中。
类似这样的东西(根据您的需求,可以对其进行参数化,这里的拉伸比例为100到80):
var tempimg = document.createElement('canvas');
tempimg.width = 100;
tempimg.height = 10;
oc = tempimg.getContext('2d');
oc.fillText(...)
yourdestcontext.drawImage(tempimg, 0, 0, 100, 10, x, y, 80, 10);
相关文章:
- 图像宽度和高度,无拉伸或溢出
- 如何动态调整文本大小以适应元素以防止拉伸
- 如何在浏览器中执行对比度拉伸/规范化
- html5画布-如何拉伸文本
- 如何从调整大小或拉伸的src加载图像
- 动态展开画布,而不拉伸所绘制的内容
- HTML5摄像头可以拉伸图片
- 拉伸和旋转SVG图像的特定部分
- 材料设计lite拉伸垂直mdl卡
- 字体在画布内的IE中被拉伸
- 响应式HTML'使用Javascript进行背景图像拉伸
- 无论何时放大或缩小,页脚都会拉伸
- 页面重定向后,使用选定的选项文本更新下拉菜单文本
- 在三.js中拉伸一个弧
- HTML 画布:缩放图像以适合而不拉伸
- 不可拉伸的初始屏幕
- 垂直拉伸列表项
- 如何拉伸/缩小HTML页面以适应QWebView窗口
- 拉伸文本..如果在 Html5 画布中长度大于 10
- 如何在konvaJS中拉伸文本值到一定的宽度和高度