- 1、本文档共23页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
FreeType2 教程的第二部分FreeType2 教程的第二部分
第二步 -- 管理字形
介绍
这是“FreeType2 教程”的第二部分。它将教会你如何:
* 检索字形度量
* 容易地管理字形图像
* 检索全局度量(包括字距调整)
* 渲染一个简单的字符串(采用字距调整)
* 渲染一个居中的字符串(采用字距调整)
* 渲染一个变换的字符串(采用居中)
* 在需要时以预设字体单位的格式获取度量,以及把它们缩放到设备空间
1.字形度量
从字形度量这个名字可以想到,字形度量是关联每一个字形的确定距离,以此描述如何使用
该距离来排版文本。
通常一个字形有两个度量集:用来排版水平文本排列的字形(拉丁文、西里尔文、阿拉伯文、
希伯来文等等)和用来排版垂直文本排列的字形(中文、日文、韩文等等)。
要注意的是只有很少的字体格式提供了垂直度量。你可以使用宏FT_HAS_VERTICAL 测试
某个给出的face 对象是否包含垂直度量,当结果为真时表示包含。
个别的字形度量可以先装载字形到face 的字形槽,然后通过face-glyph-metrics 结构访问,
其类型为FT_Glyph_Metrics 。我们将在下面详细讨论它,现在,我们只关注该结构包含如下
的字段:
Width
这是字形图像的边框的宽度。它与排列方向无关。
Height
这是字形图像的边框的高度。它与排列方向无关。
horiBearingX
用于水平文本排列,这是从当前光标位置到字形图像最左边的边界的水平距离。
horiBearingY
用于水平文本排列,这是从当前光标位置(位于基线)到字形图像最上边的边界的水平距离。
horiAdvance
用于水平文本排列,当字形作为字符串的一部分被绘制时,这用来增加笔位置的水平距离。
vertBearingX
用于垂直文本排列,这是从当前光标位置到字形图像最左边的边框的垂直距离。
vertBearingY
用于垂直文本排列,这是从当前光标位置(位于基线)到字形图像最上边的边框的垂直距离。
vertAdvance
用于垂直文本排列,当字形作为字符串的一部分被绘制时,这用来增加笔位置的垂直距离。
注意:因为不是所有的字体都包含垂直度量,当FT_HAS_VERTICAL 为假时,vertBearingX ,
vertBearingY 和vertAdvance 的值是不可靠的。
下面的图形更清楚地图解了度量。第一个图解了水平度量,其基线为水平轴:
对于垂直文本排列,基线是垂直的,与垂直轴一致:
Face-glyph-metrics 中的度量通常以26.6 象素格式(例如1/64 象素)表示,除非你在调用
FT_Load_Glyph 或FT_Load_Char 时使用了FT_LOAD_NO_SCALE 标志,这样的话度量会
用原始字体单位表示。
字形槽(glyph slot)对象也有一些其他有趣的字段可以减轻开发者的工作。你可以通过
face-glyph-xxx 访问它们,其中xxx 是下面字段之一:
Advance
这个字段是一个FT_Vector ,保存字形的变换推进。当你通过FT_Set_Transform 使用变换时,
这是很有用的,这在第一部分的循环文本例子中已经展示过了。与那不同,这个值是默认的
(metrics.horiAdvance,0),除非你在装载字形图像时指定FT_LOAD_VERTICAL ,那么它将会
为(0,metrics.vertAdvance) 。
linearHoriAdvance
这个字段包含字形水平推进宽度的线性刻度值。实际上,字形槽返回的metrics.horiAdvance
值通常四舍五入为整数象素坐标(例如,它是64 的倍数),字体驱动器用它装载字形图像。
linearHoriAdvance 是一个16.16 固定浮点数,提供了以1/65536 象素为单位的原始字形推进
宽度的值。它可以用来完成伪设备无关文字排版。
linearVertAdvance
这与linearHoriAdvance 类似,但它用于字形的垂直推进高度。只有当字体face 包含垂直度
量时这个值才是可靠的。
2.管理字形图像
转载到字形槽得字形图像可以转换到一幅位图中,这可以在装载时使用
FT_LOAD_RENDER 标志或者调用FT_Render_Glyph 函数实现。每一次你装载一个新的字
形图像到字形槽,前面装载的将会从字形槽中抹去。
但是,你可能需要从字形槽中提取这个图像,以用来在你的应用程序中缓存它,或者进行附
加的变换,或者在转换到位图前测量它。
FreeType 2 API 有一个特殊的扩展能够以一种灵活和普通的方式处理
您可能关注的文档
- c语言试题c语言试题.ppt
- C语言课程设计学生考勤系统C语言课程设计学生考勤系统.doc
- C语言程序设计第八章 文件C语言程序设计第八章 文件.ppt
- C语言程序设计项目实训指导书C语言程序设计项目实训指导书.doc
- C课程设计报告餐厅管理C课程设计报告餐厅管理.doc
- D100-25高效节能多级离心泵D100-25高效节能多级离心泵.pdf
- D155-30高效环保多级离心泵D155-30高效环保多级离心泵.pdf
- D-Link DI-524M配置教程及参数设置方法D-Link DI-524M配置教程及参数设置方法.doc
- D-Cube-Air 技审平台软件快速入门手册 V2.8.9D-Cube-Air 技审平台软件快速入门手册 V2.8.9.pdf
- D150-50多级离心泵D150-50多级离心泵.pdf
最近下载
- 物业管理区域内房屋日常管理与维修养护方案.docx
- 新改版教科版三年级上册科学全册知识点(超全).doc
- 2030荆霄鹏《楷书入门基础教程》-结构.pdf
- 青海省1000MW风电场35kV集电线路杆塔结构施工设计图册.pdf
- 人教版音乐二年级上册《理发师》(课件).pptx
- 2023年上海市各区初三语文二模试题汇编之文言文译文汇总.docx
- 材料与诊疗项目关系对照库2013.12.27.xls
- 人教版八年级上册英语单词词性转换词形转换.docx
- IPCEIAIPCJEDECJ-STD-002E-2017元器件引子、焊、接柱和导可焊(中文版).pdf
- 普通高中学校办学水平督导评估自查报告.pdf
文档评论(0)