问题标签 [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 投票
0 回答
156 浏览

c# - WinForm 中的高级字体度量

.NET WinForm 中是否有获取高级字体指标的方法?我需要能够以编程方式确定以下内容:

  • 下划线粗细
  • 下划线位置
  • 删除线厚度
  • 三振出局位置

我能够通过互操作获得大量信息(例如:GetCharABCWidthsW),但它们还不够。这些是我尚未找到获取方法的唯一信息。

谢谢你。

0 投票
3 回答
2429 浏览

qt - 在没有 GUI 的情况下获取字体度量(控制台模式)

假设某些图像必须由 Qt 控制台程序生成,并且内部算法需要字体度量(它们使用文本宽度/高度作为输入来计算应发生绘图的位置)。该程序必须可以在没有任何 GUI 的 Linux 上运行(运行级别 3,基本上是一个没有任何显示服务器的集群)。

问题: QFontMetrics 仅在以 GUI 模式运行 Qt 应用程序时可用。
在没有任何显示服务器的情况下获取字符串指标的任何解决方法?

0 投票
1 回答
559 浏览

java - java - 如何在Java中没有图形的情况下获得文本推进(stringWidth)?

java - 如何在没有Java实例的情况下获得文本推进(stringWidth)Graphics

文档示例中,stringWidth()取自FontMetrics,而FontMetrics取自Graphics

是否有可能在没有 的情况下获得相同的Graphics

在下面的注释中说,这Graphics是必需的,因为它持有FontRenderContext. 但我有FontRenderContext,只是没有Graphics

所以,假设我FontRenderContext没有Graphics. 那我怎么得到stringWidth()

0 投票
2 回答
347 浏览

java - 在java中评估给定字体大小和字体系列的像素数

我有一个自定义字符串。我可以有动态长度、字体大小和字体系列。一旦我知道该文本将占用多少像素,如果它不适合其父级,我将能够截断它。

在这里,我在评估像素时无法绘制字符串或框,但我拥有所有信息,如字体大小和字体系列。我正在使用java。

0 投票
0 回答
69 浏览

android - android字体对于数字有不正确的measureText

measureText() 使用画布中的默认字体为“0”返回与“1”相同的值。有没有正确测量的字体?

程序的输出:

0 投票
2 回答
180 浏览

java - Fontmetrics 字符串宽度与字符串长度

我有一个问题,我需要在 stringwidth 为 256 处测试字符。但是,当我进行 charAt(index) 测试时,我得到一个 indexoutofbounds 异常,因为 256(缓冲图像宽度)实际上比 string.length 长。我的问题是,一旦我达到 256 的字符串宽度,我如何测试那个宽度的字符?

0 投票
0 回答
256 浏览

java - 如何检查一个字符是否是java中的修饰符

我正在尝试将图像转换为文本程序,将 0-255 值转换为与其匹配的字符(视觉上)。这里重要的是让所有字符具有相同的宽度,因此在文本编辑器中文本是方形的......

基本上我想要 32-4000 中的所有字符都具有与“X”相同的宽度,所以我可以使用“Q”但不能使用“|” (这个字体是单声道所以没有区别)

我正在使用Unifont字体。

我目前的工作是什么,但我想提供一系列大小相同的 unicode 字符(所以最后在文本中看起来不错)

这段代码工作得很好,但我仍然会在文本编辑器中得到像 'ȷ' 这样的字符,它在文本编辑器中的宽度较小,但根据字体指标被视为与 'X' 相同的宽度(我使用的是 Courier new,因为这是默认值记事本++)

摩尔代码:

0 投票
2 回答
3556 浏览

css - font-size 真正对应的是什么?

我正在尝试查找font-sizeCSS 属性中设置的值对应的内容。

为了给出上下文,我想在 CSS 中获取em我从 OS/2 指标中知道的部分字体的大小(在大写高度之上和基线之下)。em单位是相对于给定的font-size,而 OS/2 指标是相对于 em-square 的。

我的期望

我的期望基于以下参考资料。我没有发现任何更清晰或更精确的东西。

  1. 根据CSS2.1中的W3C 参考font-size,以及我在该主题上找到的所有 Stack Overflow 问题中的引用(此处此处此处):

    字体大小对应于 em 方格,这是排版中使用的一个概念。请注意,某些字形可能会在它们的 em 方格之外流血。

  2. 根据我在排版方面的一些知识,这em square是字体度量的整个正方形,其中定义了升序、降序、间隙(等等)线。在 OS/2 度量中,em square是字体本身的大小(通常为 1000 或 2048 UPM)。

    字母指标
    (来源:microsoft.com

    我从 W3C 中找到的唯一解释是1997 年对 CSS1 的旧参考,它与我使用的现代数字定义一致em square

    某些值(例如宽度度量)以相对于抽象正方形的单位表示,抽象正方形的高度是相同字体大小的字体行之间的预期距离。这个正方形被称为EM正方形。(...) 常用值为 250 (Intellifont)、1000 (Type 1) 和 2048 (TrueType)。

因此,如果我正确理解了这些引用,则应该使用中指定的值来生成font-size整个em square字体,并且我们应该能够根据字体的大小和度量来计算部分字体的大小。

例如,与...

...我们应该有一个em squareof 100px,并且因为Helvetica Neue有一个大写高度714 / 1000sCapHeight在 OS/2 表中),一个大写高度是71.4px

预期的信

实际发生了什么。

生成em square大于(在font-size最新版本的 Chrome、Firefox 和 Safari for Mac 上测试)。起初,我认为浏览器有另一个定义,em square并且正在使字母的一部分等于font-size,但我没有找到任何与它。

渲染字母

您还可以看到这个 CodePen。请注意,我使用line-height: 1;突出显示预期大小,但我的问题是font-size(“渲染墨水”)而不是line-height(“碰撞框”)。这是我必须精确的事情,因为我已经被误解了好几次了。line-height不是问题


所以我有三个问题:

  • 我是否正确理解了 W3C 参考资料,或者我假设这些参考资料没有说明?
  • 如果不是,为什么生成的字体的 em-square 大于font-size
  • 最重要的是:我怎么知道渲染的 em-square 的大小(相对于font-size)?

谢谢您的帮助。

0 投票
1 回答
862 浏览

android - Android Layout:getLineBaseline、getLineDescent、getLineAscent、getLineBottom、getLineTop的含义

以下方法Layout(包括StaticLayoutDynamicLayoutBoringLayout)的文档非常少。

这些方法返回的具体数字是多少?它们是正常的字体度量值还是布局上的位置?

我做了一个测试项目来找出答案,所以我在问答风格下发布了我的答案。

0 投票
3 回答
582 浏览

swift - 在 NSView 中编写

我正在尝试在 NSView 画布中呈现文本。我需要写三行文字并忽略超出的内容。带有提供的 rect 的 String.draw(in:withAttributes) 似乎很完美。我的代码如下所示:

如果不进行调整,我只会渲染两行文本:

在此处输入图像描述

我遵循这些准则:https ://developer.apple.com/library/content/documentation/TextFonts/Conceptual/CocoaTextArchitecture/FontHandling/FontHandling.html#//apple_ref/doc/uid/TP40009459-CH5-SW18

我错过了什么?