如何从画布中的filltext()中删除文本多边形
How to remove text polygons from filltext() in Canvas?
下面的代码将文本绘制到画布图像中,分为顶行和底行。问题是,stroketext()
使奇怪的多边形形状出来的文本。filltext()
和stroketext()
都需要使用,这样文本就可以是白色的,黑色的边框,这将在任何图像上可见,而不管它的背景颜色。有什么方法可以移除这些多边形吗?
drawText = function(context, pos, text) {
var fontSize = 100;
while(1) {
context.font = "bold " + fontSize + "px Arial";
if( (context.measureText(text).width < (width-15)) && (fontSize < height/10) ) {
break;
}
fontSize-=2;
}
var y;
if(pos == "top")
y = fontSize + 15;
else if(pos == "bottom") {
y = height - 15;
}
context.strokeText(text, width/2, y);
context.fillText(text, width/2, y);
}
updateList = function(doc, where) {
if(where == "top")
$("#list").prepend(makeCanvas(doc));
else {
$("#list").append(makeCanvas(doc));
}
var canvas = document.getElementById(doc._id);
var context = canvas.getContext("2d");
context.textAlign = "center";
context.fillStyle = "#fff";
context.strokeStyle = "#000";
context.lineWidth = 6;
var img = new Image();
img.src = getTemplateLink(doc.name);
img.onload = function() {
context.drawImage(img, 0, 0, canvas.width, canvas.height);
drawText(context, "top", doc.text.line1);
drawText(context, "bottom", doc.text.line2);
};
}
只调用fillText()
不显示"奇怪的多边形形状",但添加一个调用strokeText()
吗?text
字符串中的字符是否全部以"Arial _px Bold"字体呈现-即,是否有嵌入的换行符或制表符或其他字符,Arial通常会显示一个框?显然,我没有尝试过你的代码,但这些是我想到的问题,也许有一点帮助。
相关文章:
- 单击文本时删除文本框的默认数据
- 使用删除文本创建新行
- 为什么jQuery正在删除文本的最后一个字符
- 在验证之前从输入值中删除文本并提交
- 如何使用jquery从父元素中删除文本(不删除内部元素)
- 删除文本区域中某个文本后出现的换行符
- javascript:删除文本中选定元素的标记
- <tspan>文本</tspan>如果没有定义id或类,如何删除文本
- 从网站中删除文本选择限制的脚本
- 如何防止用户删除文本输入中的前三个字符
- 粘贴文本时删除文本区域中的字符
- 如何在文本输入中插入删除图标并实现删除文本
- 在 Ckeditor 中,删除文本前后的 br 标签
- 如何在javascript中使用动态ID删除文本框
- 如何删除文本节点
- Javascript 焦点删除文本突出显示
- 添加或删除文本框,然后使用 PHP 或 jquery 获取它们的值
- 动态删除文本框
- 当处于活动状态时,我如何删除文本修饰.我有以下代码,但链接带有下划线
- 使用 Javascript 添加文本框后动态删除文本框