82855 AI Apple Watch CentOS Eclipse H700 iCal iOS iPad iPhone iphone4 iTunes Java Javascript linux Mac MBP ML MySQL Oracle Parallels Desktop RAID redmine Rocky Linux RockyLinux screen Snow Leopard SQL SVN Thinkpad VMware VR Windows Windows 7 Windows 11 Word X40 东航 字体 导航 数据库 朗逸 签证 达美 闹钟

为啥 10pt 的字会变成 9.75pt


问题的提出:

为啥在用VisualBasic 画画面,或者用某些工具画报表的时候,会出现画上10磅字保存之后,之际上得到的是9.75磅的字?

理论基础:

1 inch = 72 PostScript points
而 Windows 的默认解析度是 96DPI

结论:

当我们要显示一个10pt的字的时候,需要几个像素呢:

10/72*96 = 13.33(13⅓)。当然我们是无法显示13又1/3个像素的,于是只能显示为13像素。再反推回来:

13/96*72 = 9.75  — 我们的到的实际上是9.75磅的字。

同样,11 磅的字会变成11.25pt, 而9磅的字、10.5磅的字和12磅的字则不会变。

另外,如果改变了Windows的解析度,则上述想象会有不同的表现。

字体大小对照表:

pt @96DPI @120DPI
理论像素数 实际像素数 实际的pt数 理论像素数 实际像素数 实际的pt数
8 10.67 11 8.25 13.33 13 7.8
9 12    12 9 15    15 9
10 13.33 13 9.75 16.67 17 10.2
11 14.67 15 11.25 18.33 18 10.8
12 16    16 12 20    20 12
13 17.33 17 12.75 21.67 22 13.2
14 18.67 19 14.25 23.33 23 13.8
15 20    20 15 25    25 15
16 21.33 21 15.75 26.67 27 16.2

更新:
参考文章:潘石屹与西塞罗,字号的故事