问题的提出:
为啥在用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 |
更新:
参考文章:潘石屹与西塞罗,字号的故事