- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图在 HTML Canvas 上的一串字符下画一条线,但从 measureText 返回的值是错误的。
代码如下:
var theCanvas = document.querySelector('canvas')
var ctx = theCanvas.getContext("2d");
if (ctx) {
var theString = "Drawing Text on a Canvas";
ctx.font = "28px Verdana"
ctx.fillText(theString, 20, 160);
var textW = ctx.measureText(theString);
ctx.beginPath();
ctx.strokeStyle = "black";
ctx.moveTo(20, 170);
ctx.lineTo(Math.round(textW.width), 170);
ctx.stroke();
}
<canvas width="600" height="200"></canvas>
该行没有一直到达字符串的末尾。
最佳答案
当您设置线的端点时,您忘记了考虑偏移量。您的文本从 x = 20 开始,然后它应该在计算的端点 + 20 结束
不是(x,y) = Math.round(textW.width), 170
,那么应该是(x,y) = Math.round(textW.width) + 20, 170
关于javascript - HTML Canvas measureText 离我们很远,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51341106/
我在使用 skia measureText() 函数测量文本时遇到问题。返回值不准确。 SkPaint *skPaint = new SkPaint(); SkTypeface* myFont = S
我预计 TAB 字符会比 SPACE 字符宽,但在 HTML5 canvas 中,它们是相同的。加上其他一些,这不是那么重要: var c=document.getElementById('mycan
我有一个位图对象,我想在其上绘制一些文本。该文本应该针对给定点正确对齐。这就是我现在的做法: newBitmap = Image.FromFile(bg) as Bitmap; Graphics g
所以我使用Paint的measureText()方法来测量一段文本的宽度,但是我想根据一定的文本大小来测量文本。假设我想获得一个文本段的宽度,当它占据某个 TextView 时,它将是 20 个缩放像
嗨,我正在使用 TextRenderer.MeasureText() 方法来测量给定字体的文本宽度。我使用 Arial Unicode MS 字体来测量宽度,这是一种包含所有语言字符的 Unicode
调用 TextRenderer.MeasureText 如下: TextRenderer.MeasureText(myControl.Text, myControl.Font); 并将结果与控件的
我有一个长字符串(约 10 万个字符)。我需要知道这个字符串的长度。我叫 Size s = TextRenderer.MeasureText(graphics, text, font); 但它返回宽度
我正在使用 measureText() 一次显示一个字符的文本,但它给了我错误的值。 我有一个绘制字符的函数 drawChar(ch)、一个上下文“ctx”和一个将字符定位在 Canvas 上的变量“
我想使用 cavsTxt.measureText 找到文本元素的宽度。根据宽度,我会检查它是否从父元素溢出。我在更改字体系列及其大小时得到了不同的宽度。 cavsElem = document.cre
根据 MDN , .measureText().width “包含以 CSS 像素为单位的文本的提前宽度(该行内框的宽度)”,这意味着屏幕上的显示大小,这意味着如果我调用 .scale(2,2) 在我
Paint.measureText 对于阿拉伯语文本不准确。这是我尝试过的: 我有一个 TextView tv1。 tv1.getWidth(); 给出 480,没问题。 tv1.getPaint()
我试图在我的 TextBox 子类中绘制 80 个字符的边距。这是我的代码: class FooTextBox : TextBox { ... void UpdateMarginPos
我想我不知道要使用什么搜索词,这应该很简单...我用什么来确定字符串的宽度(以英寸为单位)。 Dim sSize As System.Drawing.SizeF Dim
编辑:最初我只检查了桌面浏览器 - 但对于移动浏览器,情况更加复杂。 我遇到了一些浏览器及其文本呈现功能的奇怪问题,我不确定是否可以采取任何措施来避免这种情况。 Android 上的 WebKit 和
我试图在 HTML Canvas 上的一串字符下画一条线,但从 measureText 返回的值是错误的。 代码如下: var theCanvas = document.querySelector(
在canvas中测量文本时,经常会看到如下代码 w = c.measureText(d.text + "m").width 来自 https://github.com/jasondavies/d3-c
我需要计算客户提供的所有文本的长度(以像素为单位)。问题是他们只提供了一种常规字体,而斜体样式必须由 Android 呈现。一个已知的 Android 错误是,对于斜体(呈现为斜体)字体,未正确计算
我想在给定一定宽度的可用 Canvas 的情况下测量文本的高度。我传递的文本很长,我知道会换行。为此,我调用以下方法: using System.Windows.Forms; ... string t
我正在使用 Paint.getTextBounds() 测量文本,因为我对获取要呈现的文本的高度和宽度感兴趣。但是,实际呈现的文本总是比 .width() 宽一点。的Rect getTextBound
如果我给 TextRenderer.MeasureText 一些要测量的文本和要使用的宽度,它将返回显示该文本所需的高度。 private static int CalculateHeight(str
我是一名优秀的程序员,十分优秀!