FreeType2使用总结(转)

本文介绍了FreeType2,一个免费、开源的字体引擎,支持多种字体格式并提供高质量的位图渲染。文章详细讲解了FreeType2的字形约定,包括基本概念、字形轮廓和位图渲染。此外,还探讨了FreeType2的基本数据结构和API,包括FT_Face、FT_Glyph等对象以及如何设置字体大小、加载字形图像。

一、FreeType2简介

1. 是一个免费、开源、可移植且高质量的字体引擎;

2. 支持多种字体格式文件,并提供了统一的访问接口;

3. 支持单色位图、反走样位图渲染,这使字体显示质量达到Mac的水平;

4. 采用面向对象思想设计,用户可以灵活的根据需要裁剪。

 

二、FreeType2字形约定

2.1 基本概念

字形:

  字符映像叫做字形,单个字符能够有多个不同的映像,即多个字形。多个字符也可以有一个字形。

  (可以理解为一个字形就是一种书写风格)

字符图:

  字体文件包含一个或多个表,叫做字符图。用来将某种字符码转换成字形索引。一种字符编码方式(如ASCII、Unicode、Big5)对应一张表。

 

2.2字形轮廓

点:

  字形文本的大小通常用点(point)表示。点是一种简单的物理单位,数字印刷中,一点等于1/72英寸。

  设备的分辨率通常使用dpi(每英寸点数)表示的两个数。

  点数大小和像素数的转换公式:

  像素大数  = 点数*分辨率/72

轮廓线:

  字形轮廓的源格式是一组封闭的路径,称为轮廓线。每个轮廓线划定字形的外部或内部区域,它们可以是线段或者Bezier曲线。

EM正方形:

  字体在创建字形轮廓时,字体创建者所使用的假象的正方形。他可以将此想象成一个画字符的平面。它是用来将轮廓线缩放到指定文本尺寸的参考;它的尺寸越大,可以达到更大的字形分辨率。

  注意:字形可以自由的超出EM正方形。

位图渲染:

  指从字形轮廓转换成一个位图的过程。

 

2.3 字形度量

基线、笔和布局:

  基线是一个假象的线,用来在渲染文本时知道字形,它可以是水平或垂直的。而且,为了渲染文本,在基线上有一个虚拟的点,叫做笔位置或原点,它用来定位字形。每种布局使用不同的规约来放置字形:

  对水平布局,字形简单地搁在基线上;

  对于垂直布局,字形在基线上句中放置。

 

                      图1. 水平布局及其度量     

                            图2.垂直布局及其度量

 

 

重要的字体度量参数:

 上下高度(ascent):   从基线到放置轮廓点最高(上)的距离;
 下行高度(descent):从基线到放置轮廓点最低(下)的距离;
 左跨距(bearingX):  从当前笔位置到轮廓左边界的水平位置;
 上跨距(bearingY):  从当前笔位置到轮廓上边界的垂直位置;
 步进宽度(advanceX): 相邻两个笔位置的水平距离(字间距);
 字形宽度(width):     字形的水平长度;
 字形高度(height):   字形的垂直长度。

 

 

三、FreeType2基本数据结构及API

3.1 基本数据结构

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值