字体的大小精确地转换为什么?


81

我有一种40像素的字体,我正在尝试将其转换为自定义图像。我正在尝试完全匹配图像的大小,但是在获取正确大小时遇到​​了一些问题。基本上,归结为这个。当字体说是X像素时,这在物理上是什么意思?


在字体中,我们有一个x height的术语,您在说同样的意思吗?
杰克

5
如果要输入文档,通常使用12号字体。12是什么意思?
PearsonArtPhoto 2011年

12 = 12pt类型(通常)
DA01 2011年

Answers:


67

这是一个很好的问题,答案很不令人满意。

类型的大小(以像素,点(1/72英寸)或毫米为单位)是em-square的高度,即一个不可见的框,通常比从最高的上升者到最低的下降者的距离大一点。

鉴于这是一个有点武断的措施,

  • 取决于字体的确切技术设计
  • 无法从打印或光栅化的样品中精确测量

除了作为近似值,它不是非常有意义或有用。

根据您的情况,计算出需要在Photoshop中指定的大小,以通过实验匹配浏览器的渲染。您应该发现这对任何字体都是一个恒定的比率,但是如果您更改浏览器或OS,我不希望出现这种情况。


49

ASCII时间!假设下面的两个盒子是1900年左右的铅类型。那时,字体是用铅铸成的(或用木头制成的)。为了将类型设置为打印锁定,必须将其连接到实体块。这是类型的维数(以磅为单位)来自:

+--------------+  +-------------+  <----+
|              |  |             |       |
|      XX      |  |             |       |
|     X  X     |  |             |       |
|    XX  XX    |  |             |       |
|    XX  XX    |  |     X       |
|    XXXXXX    |  |    X X      |   Point size of the type
|   XX    XX   |  |    XXX      |
|   XX    XX   |  |   X   X     |       |
|  XX      XX  |  |   X   X     |       |
|  XX      XX  |  |             |       |
|              |  |             |       |
+--------------+  +-------------+  <----+

请注意,上面两个字母的大小不同,但是它们的边界框相同。这样,就点而言,这两种字体的大小相同。

如今,我们生产的铅和木材种类不多,大多数是数字化的。但是,点大小调整的概念仍然存在,因为存在一个虚拟框,该虚拟框对于放置该类型的每个字母都具有相同的高度。同样,这是一个虚拟框,用于定义点的大小,而不是字母形状本身的物理尺寸。字母的实际大小通常小于点的大小(但也可以更大)。

因此,无法测量像素类型,但是,您可以在CSS等中“设置”像素类型。浏览器会尽最大可能在声明的px大小之间进行转换。但这总是一个模糊的估计。

最终,没有一种准确的方法来获得两个完全相同大小的字体字母,而不能目视观察它们并更改每个字体的大小,直到您看到它们的大小相同为止。


在您的计算机中,您可以这样计算像素点:PX =点* SystemDPI /72。视频世界(显示器)中的DPI是Apple于1984年引入的纯任意值。DPI在视频/图像世界中不存在。现代字体基于此概念,其中1点1/72定义为1/72英寸。

5
@AbdiasSoftware是的,平均1点为1/72英寸,第一台Mac的屏幕为72 ppi。但不确定与所提问题或我给出的答案有什么关系。事实仍然是,无论是数字字体还是模拟字体,都有一个边框,而边框就是大小所指的。
2012年

41

字体的“字体大小”是指字体的“高度”,它不一定与字体中特定字符的高度相同。

通常,字体的em高度遵循相同的基本思想-粗略地将其设置为从最低的降序数(例如字母的底部g)到最高的降序数(例如字母的顶部)之间的距离h

如您所见,没有一个字母可以覆盖整个范围。

对于数字字体,字体的“ em height”是字体设计者的选择,而完全不必遵守这一约定:数字类型设计者可以为其em大小选择任何基础。但是,字体仍然倾向于至少在某种程度上遵循上述约定。在过去,当字体由金属块组成时,“ em height”是这些块之一的高度,不仅对于该字体中的任何字符,而且对于任何上升,下降和重音符号,都必须足够高。

现在,许多现代字体包含大写字母的口音太(如Ć) -这些口音延长以外的传统印刷伸,因此,这些(以及可能的其他特殊字符)属于“EM”的外上方。出于历史原因,我们不会调整em大小以允许这些大小,我们会保留em大小,而只是将其扩展出来-使用此类重音符号的任何印刷者都需要确保有足够的空间来扩展它们,尽管通常情况下,线隙是正文充足。

线间隙在正文中是左一行文本的下降部和它下面的线的上升器之间的空间-即,“字体大小”不包括此线间隙的测量。它会受到CSS字段的影响line-height,其中1.4表示行距是em高度的0.4倍,因此整个正文行将占em高度的1.4倍(包括行距)。在其他应用程序中,可以以不同的方式指定行距:字处理器通常以“单”行距的倍数来指定,但是与CSS不同,通常“单”行距并不意味着没有行距,而是一些“默认”行间隙,应用程序尝试根据字体文件中的元数据提出默认值。有多种用于指定字体度量的标准(例如,在Truetype中,存在不同的Mac和Windows / OS2标准),因此默认的行间距可以在应用程序和操作系统之间变化。

现在,即使设计师确实按照可预见的惯例约定了他们的身高,但这仍然无法告诉您大写字母的大小(大写字母高度)或大写字母的大小o(x高度或中线),因为它们可能会有所不同字体之间相对于上升高度的自由度。在字体家族中,这些通常通常是一致的。因此,例如,Times New Roman Bold和Times New Roman Regular对于相同的em大小将具有相同的字符大小,其中应包括上升,下降,cap-height和x-height。


2
是的-有约定(例如em从'g'的底部到'h'的顶部),但是仍然存在差异,并且字体格式完全不支持设计人员遵守这些约定。
thomasrutter 2012年

7

尝试输入竖线字符('|')并进行测量。如果我正确地复制了您的情况,并且您的抗锯齿效果并不太模糊,则应该为22px。

22px代表类型块的高度。但是每个字符填充块的方式都不同。“ g”或“ q”将占据该22px的下部区域,而大写字母和小写字母(如“ b”或“ d”)将占据上部。'|' 是唯一的(如果不是之一唯一)字符,将完全填充的22px空间。

我不知道如何与CSS设置进行比较,但这说明了Photoshop如何解释文本高度。


1
此外,您可以将两种字体设置为相同的大小,并且经常会看到字母形式本身不是。它们只是具有相同的“块”大小。
2012年

3
管道并不总是充满分配的总空间。纯粹是类型设计人员的偏爱。它通常会与上升器的顶部和下降器的底部匹配,但是即使那样,分配给角色的空间仍然会更大。
2012年

2
竖线字符并不总是等于字体的em大小(例如“全高”),否。实际上,通常情况会更少。
thomasrutter

2
垂直的框画字符理论上应覆盖整个em高度(并且可能会重叠少量)。但是很少有字体包含这些字符。普通的竖线(|)通常不会等于em尺寸。它甚至不在Microsoft核心字体(Arial,Georgia等)中执行此操作。
thomasrutter 2012年

2
竖线字符不能填满整个高度。大写字符(例如“Á”)的重音位置较高。比较一下自己:“Á”“ |”
znq 2012年

0

您确定您的字体以像素为单位吗?大多数时候,字体以磅为单位。点是1/72英寸。因此40磅字体的高度是40/72“或5/9”。踢脚线是从高个字母上的上升者的顶部到悬挂在基线以下的字母上的下降者的底部的尺寸。如上所述,这就是为什么有时使用x高度的原因。那是不粘上下的小写字母的高度。

无论哪种方式,不幸的是,这些测量永远不会精确。您只需进行一些测量和计算(和/或反复试验)即可完成您要尝试的工作。


但是,点仅与物理类型(印刷,雕刻,雕刻等)有关。
e100

并不完全正确。类型不是从上升器的顶部到下降器的底部的度量,而是由可能与或不与上升器/下降器高度相关的边界框测量。这可以追溯到铅和木材类型的时代,在那里铅字被放在一块。正是该块的高度决定了将类型标记为什么大小。这样,两种字体都设置为12pt时,彼此之间的大小可能会非常不同。(我不会进入一个事实,即1pt通常不等于1/72英寸...;)
DA01 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.