字体大小单位有很多,如何进行换算?
px:相对长度单位,像素(Pixel)。
pt:绝对长度单位,点(Point)。
1 inch = 2.54cm = 25.4 mm = 72pt
1 pt = 1/72 inch, = 0.3527 mm
像素与毫米的转换
转换还需要知道另一个参数:DPI(每英寸多少点)
象素数 / DPI = 英寸数
英寸数 * 25.4 = 毫米数
对于显示设备,不管是打印机还是屏幕,都有一种通用的方法
先用GetDeviceCaps(设备句柄,LOGPIXELSX)
或者
GetDeviceCaps(设备句柄,LOGPIXELSY)获得设备每英寸的像素数
分别记为:px 和 py
一英寸等于25.4mm
那么毫米换算成像素的公式为
水平方向的换算: x * px /25.4
垂直方向的换算: y * py /25.4
像素换算为毫米:
在程序中这么写
MyControl.Height := 10{mm} * PixelsPerInch * 10 div 254;
分子和分母同乘以10,将浮点数运算转化为整数运算,效率更高
常用的1024x768或800x600等标准的分辨率计算出来的dpi是一个常数:96,因此计算出来的毫米与像素的关系也约等于一个常数:
基本上 1毫米 约等于 3.78像素
-
字的号数制
汉字大小定为七个等级,按一、二、三、四、五、六、七排列,在字号等级之间又增加一些字号,并取名为小几号字,如小四号、小五号等。号数越高, 字越小。号数制的特点是用起来简单、方便,使用时指定字号即可,无需关心字形的实际尺寸,缺点是字大小受号的限制,有时不够用,大字无法用号数来表达;号数不能直接表达字形的实际尺寸;字号之间没有统一的倍数关系,折算起来不方便。尽管如此,号数制仍是目前中文表示字形规格最广泛的方法。
需要注意的是,传统标准铅字的字号大小与一般字处理软件实际输出的文字尺寸往往有一些误差,这是由于字的变倍计算处理造成的。
-
字的点数制
点数制。是国际上通行的印刷字形的一种计量方法。这里的“点”不是计算机字形的点阵,“点”是传统计量字大小的单位,是从英文Point的译音来的,一般用小写p表示,俗称“磅”。也有人将此称为级。其换算关系通常为:
1p=0.35146mm≈0.35mm 1英寸=72p
但是却不是总是如上面的公式,点数制其实又分法国点制和美国点制:
-
要说清它我们得从印刷术 谈起。 1737年法国铸字者 Fouroier 以铅字为尺度标准建立了一种点制,后来在它的基础上又发展出了现在广为应用的点制标准。
法国铸字者 Didot 于1770年用当时法国皇家尺为标准,称1尺为12法寸,1法寸为72点,他还将12点定为1 Cicero,Cicero 是古代罗马的一位律师的名字。现在欧洲大陆多采用 Didot 点制,换算关系如下:
1 p = 0.3759mm = 1/72 Royal French inch = 0.0148(约1/68inch) = 1.0695pt
1 cic = 12 p
(注意这里的0.3759mm >0.35146mm)
-
英美两国落后于法国100余年后才采用点数制,成为 ATA 点制(也叫 Anglo-Saxon 点制),换算关系如下:
1 pt = 0.3514598035 mm = 1/72.27 inch = 0.9350 p
1 pica = 12 pt
你可以发现,说英语的国家用的点比欧洲大陆的小,大约每18个点就差了1点,这样对于某些为英美国家开发的软件到了其他国家时就可能出些麻烦。为了解决两种体系的冲突,一种办法是大家都采用公制的长度标准,但是似乎只有日本和德国等一些欧洲国家在部分的采用。
(注意看看最初的定义,其实指的就是这个美式的点制。)
事情还不是这么简单,在不同的程序中1点代表的距离也会有微小的差别,比如在 Postscript 使用的是 big point(bp)。
1 pt (TeX) = 0.3514598035 mm = 1/72.27 inch 1 bp (Postscript) = 0.3527777778 mm = 1/72 inch
关于点数制更多内容:
http://en.wikipedia.org/wiki/Font_size
http://www.sizes.com/tools/type.htm
http://www.artlebedev.com/mandership/81/
汉字大小的标准,称为字号,前文也说过,看看字号和点制之间的转换关系。在wiki的对照表中发现中文 Microsoft Word 中用的竟然是 Didot 点(法式点制),很奇怪,如果再换算成 TeX 使用的点(美式点制度),结果如下:
初号:42 p = 44.9 pt 小初:36 p = 38.5 pt 一号:26 p = 27.8 pt 小一:24 p = 25.7 pt 二号:22 p = 23.5 pt 小二:18 p = 19.3 pt 三号:16 p = 17.1 pt 小三:15 p = 16.0 pt 四号:14 p = 15.0 pt 小四:12 p = 12.8 pt 五号:10.5 p = 11.2 pt 小五:9 p = 9.6 pt 六号:7.5 p = 8.0 pt 小六:6.5 p = 7.0 pt 七号:5.5 p = 5.9 pt 八号:5 p = 5.3 pt

在字处理中,点数制与号数制并存使用,互为补充,两者相互之间有对应的折算关系,可以通过查表得到。由于计算机处理汉字时,字大小可以灵活地无级变化,且对于一些大字,号数制有限的号数也无法计量,所以计量单位比较小的点数制更适合字处理系统对字形的计量。
计算实例讲解
通过以上的这些讲解,读者应该已经知道了字体大小的一些概念和内容,下面我们来看几个实际的例子,看完之后相信你应该明白字体的大小的一些转化关系。
以Firefox为例,无论在哪个操作系统中,Firefox 浏览器默认的 Dpi都是 96,所以对firefox来书,9pt的字,大小等于12px字。
9pt = 9 * 1/72 * 96 = 12px。
假如Dpi为128,那么9pt的字,实际大小为:
9pt = 9 * 1/72 * 128 = 16px
这说明Dpi越大,字的包含的像素号越大。




加载中…