字体的单位

  1. px,pixel的意思,像素,屏幕上显示数据最基本的点;
    note:px是一个点,不是自然界的长度单位,不能说一个“点”很大或很小。一个点可以画的很小,也可以画的
    很大。如果大那就清晰,则说分辨率高,反之分辨率低。“点”的大小是会变的,称之为“相对长度”。

  2. 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

  1. DPI: dot per inch,没英寸多少点, 印刷品的点密度;
  2. PPI: pixel per inch, 每英寸像素数, 设备的点密度;
  3. 针对显示器的设计:dpi==ppi

pt与px的换算

px = pt×DPI/72; DPI=96时,pt = 4/3px

em: %。 一个相对单位。网页中使用, em = 16×px,1.5em=1.5*16=24px

FreeType中字体的大小的设置

  1. FT_Set_Char_size(face, char_width, char_height, horz_resolution, vert_resolution)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    FT_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之间的小数转换为整数参与计算的方式,有利于进行浮点数的定点运算,
    与小数比较,精度差不多,但速度加快.
  2. FT_Set_Pixel_Size(face, char_pixel_width, char_pixel_height)

    1
    上面单位为像素不需要转换。

FreeType字形约定

FreeType字形约定
FreeType Glyph Conventions