问题标签 [fontmetrics]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
55 浏览

java - 重绘()字体度量

我有一些需要在屏幕上绘制的东西,但这需要正确绘制字体指标。我还需要使用 repaint() 或其他东西在屏幕上绘制。

如果我有paintComponent(Graphics)方法,我可以通过g.getFontMetrics(g.getFont()). 问题是,我不能告诉它自己画。它仅在发生某些事情(例如调整组件大小)时才会这样做。

然后,如果我只使用 normal paint(Graphics),我可以repaint()在我想要的时候使用它来绘制,但调用g.getFontMetrics(g.getFont())不会返回正确的值。有任何想法吗?

0 投票
1 回答
4089 浏览

java - Java:g.drawString() 宽度和高度(以像素为单位)?

我使用 fontmetrics 来确定绘制到 jpanel 的字符串的长度和高度,但它给了我不正确的测量值。

我使用的字符串是:“Hello World,这太棒了”

例如:a 用默认字体绘制了一个字符串;根据字体度量,尺寸为:高度:24;宽度:224。

当我测量它时,它实际上长 148 像素,高 10 像素。(基本上是通过反复试验)

我想知道java中是否有一个公式或方法可以提供以像素为单位的字符串的实际高度和宽度。谢谢!

0 投票
1 回答
3108 浏览

c++ - QFontMetrics 返回不准确的结果

如果用户搜索某些内容,我的自定义委托QTableWidget会突出显示匹配项。不幸的是,矩形位置通常并不适合这种情况发生在某些字符或短语上,或者取决于匹配的数量或前导字符串的大小。我找不到导致这种情况的具体原因。这是一个例子:例子.

这是我的绘画程序(尝试解决问题的所有尝试和错误有点混乱):

注意: filter_string是搜索的字符串,find_ci只是一个std::string::find包含不区分大小写的包装器,但在这里并不重要,因为这个测试用例是完全小写的,我std::string用于非 qt 的东西。

编辑:对于我尝试的宽度计算fm.tightBoundingRect().width()fm.boundingRect.width()结果fm.width()不同但从未正确。

我使用 Qt 5.2

0 投票
2 回答
49485 浏览

android - Android的FontMetrics中top、ascent、baseline、descent、bottom、leading的含义

这似乎是一个基本问题,但我在 SO 上找不到类似的问题。在阅读文档时,我无法掌握这些概念。我想了解topandascent和 alsobottom和之间的区别descent。基线到底在哪里?你有图表可以帮助我形象化吗?

0 投票
0 回答
319 浏览

fonts - Unity Font Metrics 计算动态字体的上升

我想自定义渲染字体,但是如何计算其他大小的动态字体的上升?

使用Font.ascent我只收到当前设置大小的上升。

在图像上: 1 步- 不移动; 2 步- 移动字符高度; 3 步- 在上升时转移 - 到字体基线; 在此处输入图像描述

0 投票
0 回答
77 浏览

c# - 有没有办法从 PCL(便携式类库)中获取字体测量值?

我试图找到一种从我的 PCL(便携式类库)中获取字体测量值的方法,但是我遇到的用于获取字体测量值的每个资源似乎都是特定于平台的。

这是 PCL 不支持检索字体度量的可移植方式的限制吗?

而且,如果他们有不同的检索指标的方式,这是否意味着指标不同?也就是说,如果我有 Courier New 10 pt 字体,那么Hello这个词的宽度会与 Windows 桌面、Windows Phone 和 Windows RT 应用程序不同吗?

0 投票
2 回答
3592 浏览

c++ - QFont 不允许手动设置行距或行距

我一直在尝试找到一种方法来更改字体文件的行间距默认值,使用QFontQFontMetrics或类似的东西。我在用着QPainter::drawText用来在边界矩形中绘制一些文本。

奇怪的是,QFont允许更改字体字距,甚至有一些拉伸操作和字母间距,但没有改变行之间的默认间距。我已经搜索并找到了一些部分解决方案,QTextLayout但似乎没有一个可以正常工作。

我需要使用QPainter,因为我使用要使用 OpenGL 渲染的文本生成纹理。

寻找更多想法让我尝试!

更新

我发现我可以QPainter用来绘制一个QStaticText允许 HTML 文本格式的,类似于QTextDocument. 但是,CSS 样式不像QTextDocument(有一个错误报告)那样工作......因此仍然没有领先,但我希望这能让我走上正确的轨道。

解决了

我得到了我想要的东西QTextDocument,就像 Mykhaylo 建议的那样。链接到解决方案

0 投票
2 回答
861 浏览

java - 如何在 JTable 中获取列标题的字体和图形

我正在尝试获取 JTable 中列标题的图形和字体。为此,我正在使用代码

但是,这会产生找不到符号错误 找不到符号错误

该程序的完整代码是

TableBasic 的代码是

笔记

导致错误的代码位于调用方法内的 for 循环中setMinPrefMax()

0 投票
1 回答
284 浏览

java - 在调用绘制方法 id 之前获取字体度量

嗨,我正在创建一个新闻自动收报机/文本滚动条。我正在使用以下方法:

基本上它有两个正在绘制的字符串。一个从 0 位置开始,另一个从 -650 开始。我通过使用 paint 方法中的字体度量得到了 -650 数字。问题是我必须对那个数字进行硬编码,如果我使用不同的字符串,它有不同的指标,它就行不通了。我尝试创建一个名为 width 的实例变量来存储字体度量,但似乎直到调用 paint 方法才输入宽度。无论如何我可以在开始绘制之前获得指标吗?

0 投票
0 回答
225 浏览

graphicsmagick - GraphicsMagick 和 FontMetrics

我的目标是创建一个文本图像并将其放在其他图像之上。这是我用来创建文本图像的命令:

为了计算我需要的图像大小,我像这样使用 FontsMetrics:

虽然我经常生成文本被截断或多行的图像,这意味着我计算的宽度实际上对于文本来说是不够的。字体来自.ttf文件。我相信这种错误计算的发生是因为 GraphicsMagick 中的密度/DPI 参数。我目前没有使用它(我相信默认为 55),但我想知道与 FontMetrics 计算的相比,它如何影响实际字体大小。

有没有人有使用 gm 生成带有文本的图像的经验?有什么想法可以使图像尺寸计算更准确吗?