问题标签 [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.
java - FontMetrics 返回错误的字符大小
由于我从事 LWJGL 项目,因此遇到了显示文本的问题。理论上,我想遍历(扩展)ascii 表并将所有字符的每个纹理保存在 ArrayList 中。
但我的问题是它在创建 char 图像时无法获得正确的尺寸。尺寸似乎是 1(宽度)x 3(高度)代码:
有人可以帮我吗?或者,如果您有其他想法来解决此问题,请告诉我
java - Java - 居中文本(在画布上)
感谢您查看我的问题。
我正在为我正在制作的游戏制作一个菜单,我想将游戏的标题放在主菜单的中心。我在 Stack Overflow 上查看了几个问题,但找不到答案。
问题
我遇到的问题是,每当我调用我的centerString()
方法时,它都会将它放在 y 轴的中心,而不是 x 轴的中心。我在这里做错了什么?
代码
方法代码
哪里叫
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
使用大量资源,我不能在抽奖期间随时使用它。
python - 奇怪的行为计算带有度数符号的文本边界框
我正在使用 matplotlib 的 Adobe 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 y
是thismax = b + h
. 我不明白为什么b+h
应该在那里使用,而不仅仅是h
????
java - JDK 10 中支持的计算字符串宽度(像素)的方法是什么
我不想使用 AWT。我正在使用 FontMetrics.computeStringWidth() 但在 JDK 10 中消失了,破坏了我的应用程序。是否有不需要引入新框架的替代方案(我正在使用 javafx)
java - 我用于确定适当字体大小的 while 循环太过分了……有时?
我正在为学校做一个项目,该项目需要我读取文件并使用读取的数据制作条形图。我创建了一个类,它制作一个 JFrame 并绘制矩形以将框架划分为每个数据名称的部分(足球运动员姓名)和条形图(球员年龄)。我有一种方法旨在增加字体大小,直到最长(打印的)字符串占用分配空间的宽度,并返回该大小的字体以在paint方法中使用。
它在创建初始 JFrame 时起作用,但是当我调整它的大小时,它有时会将字体大小 1 增加到大,但并非总是如此。我很茫然。控制台输出(对我来说)显示我的 while 循环的条件没有得到满足,但字体大小仍然增加了......任何洞察力将不胜感激。谢谢!
当我拖动以调整 jframe 的大小时,输出看起来像这样:
Demaryius Thomas
长度 150
允许宽度 158
17
Demaryius Thomas
长度 170
允许宽度 158
18
java - 浮动字体大小在 OpenJDK 中不起作用
浮动字体大小在 OpenJDK 中不起作用。似乎在计算字符串边界时字体大小被四舍五入,例如 11.4 -> 11 & 11.5 -> 12 但是在 oracle jdk 中它工作得很好。
知道如何在 OpenJDK 8 中解决这个问题吗?
程序:
结果:
java - 如何获得文本在 JTable 的单元格内占用的确切空间?
我在 JScrollPane 中有一个行标题,我应该根据文本采用的最大宽度设置其宽度。我设法做到了,但我必须在对 setPreferredScrollableViewportSize 的调用中添加 1 才能显示全文。我测量错了吗?还是这个数量是固定的?
这是主要课程。
这是标题类。请看adjustSize()
。