字体的单位
px,pixel的意思,像素,屏幕上显示数据最基本的点;
note:px是一个点,不是自然界的长度单位,不能说一个“点”很大或很小。一个点可以画的很小,也可以画的
很大。如果大那就清晰,则说分辨率高,反之分辨率低。“点”的大小是会变的,称之为“相对长度”。pt,point的意思,印刷行业常用单位,等于1/72英寸;
note: 全称为point, 但中文不叫“点”,确切的说法是一个专用的印刷单位“磅”,大小为1/72英寸,自然界标准
的长度单位,也称为“绝对长度”。
pt或px的选择
一般系统中,把文字定义为96DPI(PPI异同)。这样,则:1px=1/96英寸。由1pt=1/72英寸,
可得出1px=0.75pt,常见的宋体9pt=12px。在显示器分辨率不变的基础上(如1024*768),1px
大小固定不变;改变显示设置为144DPI, 则可计算得1px=0.5pt,常见的宋体9pt=18px。原来用
12px的字现在用18px,字变大了。px与pt的使用区别,只有当用户改变默认的96DPI的时候才会
产生。
DPI与PPI
- DPI: dot per inch,没英寸多少点, 印刷品的点密度;
- PPI: pixel per inch, 每英寸像素数, 设备的点密度;
- 针对显示器的设计:dpi==ppi
pt与px的换算
px = pt×DPI/72; DPI=96时,pt = 4/3px
em: %。 一个相对单位。网页中使用, em = 16×px,1.5em=1.5*16=24px
FreeType中字体的大小的设置
FT_Set_Char_size(face, char_width, char_height, horz_resolution, vert_resolution)
1
2
3
4
5
6
7
8
9FT_Set_Char_Size(face, 12*64, 0, 96, 0);
设置字号,这里 char_height, vert_resolution 设置 0,表示
沿用 char_width, horz_resolution 的值。这里设置 12pt 字号,96dpi
注意 12 * 64,因为 FreeType2 中所有 float 都是通过变换成整数来做的,这
里是 26.6 float format,所以 (12 << 6) == 12.0
26.6 float format: 是将-1.0到1.0之间的小数转换为整数参与计算的方式,有利于进行浮点数的定点运算,
与小数比较,精度差不多,但速度加快.FT_Set_Pixel_Size(face, char_pixel_width, char_pixel_height)
1
上面单位为像素不需要转换。