问题标签 [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 回答
275 浏览

java - 如何使文本字体缩小并匹配 JTextArea 高度?

我有一个接收文本的 JTextArea,但问题是当文本太长时它不适合并且出现滚动条。我想要的是自动缩小字体大小以匹配 JTextArea 高度。 现在是这样的

0 投票
1 回答
59 浏览

java - FontMetrics 返回错误的字符大小

由于我从事 LWJGL 项目,因此遇到了显示文本的问题。理论上,我想遍历(扩展)ascii 表并将所有字符的每个纹理保存在 ArrayList 中。

但我的问题是它在创建 char 图像时无法获得正确的尺寸。尺寸似乎是 1(宽度)x 3(高度)代码:

有人可以帮我吗?或者,如果您有其他想法来解决此问题,请告诉我

0 投票
1 回答
127 浏览

java - Java - 居中文本(在画布上)

感谢您查看我的问题。

我正在为我正在制作的游戏制作一个菜单,我想将游戏的标题放在主菜单的中心。我在 Stack Overflow 上查看了几个问题,但找不到答案。

问题

我遇到的问题是,每当我调用我的centerString()方法时,它都会将它放在 y 轴的中心,而不是 x 轴的中心。我在这里做错了什么?

代码

方法代码

哪里叫

0 投票
1 回答
1066 浏览

c# - 获取 WinForms 字体的精确高度(以像素为单位)

这可能是一个重复的问题,但我无法找到答案。

我唯一的问题是如何以Font像素为单位获取 WinForms 中使用的高度(上升 + 下降,没有任何间距)。我有Segoe UI 8.25 常规字体。

Font.Height给我 15(像素?)

我能够获得字体指标和使用FontFamily

  • GetEmHeight给我2048。
  • GetCellAscent给我 2210(大于 EM?)
  • GetCellDescent给我514

根据MSDN的公式

我应该做以下事情:

所以:

  • 使用 MSDN 的公式计算得到19像素的文本高度。
  • TextRenderer.MeasureText“Tg”字符串给了我13像素。
  • 如果截取屏幕截图并在 Photoshop 中测量(从g的最低边界到T的最高边界),我将获得10像素。

我做错了什么以及这些价值观是如何相互关联的?目标是尽可能接近屏幕截图的测量结果。

TextRenderer.MeasureText使用大量资源,我不能在抽奖期间随时使用它。

0 投票
0 回答
334 浏览

python - 奇怪的行为计算带有度数符号的文本边界框

我正在使用 matplotlib 的 Adob​​e Font Metrics 接口来计算各种字符串的边界框。计算“12”和“°”的边界框效果很好,但是在计算“12°”的边界框时,框的大小似乎太大了。

我知道由于字距调整等原因,边界框的尺寸不一定等于其部分边界框的总和,但这似乎很荒谬。(它似乎也没有反映渲染时此类文本的大小)。

编码:

(\u00B0 是° 的 unicode)

结果

第三个结果的高度显然太大了。1066是676 + 390,不知道是不是巧合但是我不明白

问题

为什么边界框如此之大/是什么导致了这种行为?

有没有办法“解决”这个问题,以便我得到一个更具代表性的 bbox,文本实际看起来像什么?

(有关边界框的更多信息,请参见:https ://wwwimages2.adobe.com/content/dam/acom/en/devnet/font/pdfs/5004.AFM_Spec.pdf )

编辑:

检查 matplotlib.afm 中的 AFM 类,我想我发现了违规行。下面# find the max ythismax = b + h. 我不明白为什么b+h应该在那里使用,而不仅仅是h????

0 投票
1 回答
231 浏览

java - JDK 10 中支持的计算字符串宽度(像素)的方法是什么

我不想使用 AWT。我正在使用 FontMetrics.computeStringWidth() 但在 JDK 10 中消失了,破坏了我的应用程序。是否有不需要引入新框架的替代方案(我正在使用 javafx)

0 投票
1 回答
43 浏览

java - 我用于确定适当字体大小的 while 循环太过分了……有时?

我正在为学校做一个项目,该项目需要我读取文件并使用读取的数据制作条形图。我创建了一个类,它制作一个 JFrame 并绘制矩形以将框架划分为每个数据名称的部分(足球运动员姓名)和条形图(球员年龄)。我有一种方法旨在增加字体大小,直到最长(打印的)字符串占用分配空间的宽度,并返回该大小的字体以在paint方法中使用。

它在创建初始 JFrame 时起作用,但是当我调整它的大小时,它有时会将字体大小 1 增加到大,但并非总是如此。我很茫然。控制台输出(对我来说)显示我的 while 循环的条件没有得到满足,但字体大小仍然增加了......任何洞察力将不胜感激。谢谢!

当我拖动以调整 jframe 的大小时,输出看起来像这样:

Demaryius Thomas
长度 150
允许宽度 158
17
Demaryius Thomas
长度 170
允许宽度 158
18

0 投票
1 回答
620 浏览

java - 浮动字体大小在 OpenJDK 中不起作用

浮动字体大小在 OpenJDK 中不起作用。似乎在计算字符串边界时字体大小被四舍五入,例如 11.4 -> 11 & 11.5 -> 12 但是在 oracle jdk 中它工作得很好。

知道如何在 OpenJDK 8 中解决这个问题吗?

程序:

结果:

0 投票
1 回答
50 浏览

java - 如何获得文本在 JTable 的单元格内占用的确切空间?

我在 JScrollPane 中有一个行标题,我应该根据文本采用的最大宽度设置其宽度。我设法做到了,但我必须在对 setPreferredScrollableViewportSize 的调用中添加 1 才能显示全文。我测量错了吗?还是这个数量是固定的?

这是主要课程。

这是标题类。请看adjustSize()

0 投票
2 回答
1067 浏览

java - 使用Java在窗口中水平居中文本

我试图弄清楚如何使用 Graphics2D 和 FontMetrics 在窗口中水平居中文本。我做了一个方法,希望在将字符串更改为 Font 类型后测量它的长度,但它不能很好地使文本居中。

如何正确居中文本?

标题没有很好地居中: 在此处输入图像描述

我的 MainClass 类:

我的 DisplayText 类: