论文部分内容阅读
字体问题在计算机产生后就出现了,尤其是对于非字母语言的国家地区来说,计算机的字体输入是一个很重要的问题。在开始,计算机性能较低以及计算机的应用也不是太广泛,简单的图形字体可以满足大部分需要了。但是电子器件以摩尔定律的速度发展,促使计算机性能的飞速提升,计算应用的普及,使当时的计算机系统开发者,开始注意这个问题,进而计算机的字体从简单的图形化,到矢量化实现了人类字体的全覆盖,并且在专业字体软件的处理下可以优美的展示各种字体,展现出各种信息。本文是作者在研究开发Android应用时,针对普遍使用的ttf字体以及ttf字体引擎FreeType的一点儿研究心得,本文重点在于完成使用FreeType解析字形信息,生成ttf格式文件的算法不在本文研究范围内。Type1字体格式与TrueTypeFont(ttf)格式是目前计算机等相关设备的一般都支持的格式,可以说是业界的标准,这两种字体格式的算法都已经公开,具体的字体格式大部分也公开,本论文研究的目的是掌握其核心思想以及设计理念,并最终用于解决APP开发问题。由于ttf格式的普遍性以及采用的算法相对简单,其次ttf格式也易于理解,最新的OpentType格式还未完全普及,因此选定ttf格式作为研究入点,同时有开源的FreeType选作为解析字形的引擎。论文首先对字体信息进行了一些阐述,然后简要介绍了ttf格式的数学原理,系统分析了ttf的格式,并分析了一个字形信息。其次分析了FreeType的源码以及主要实现方法,并举例说明其面向对象思想。最后,实现改写FreeType提取字形信息以及定制ttf文件,改进FreeType程序使之处理定制的ttf文件以及解析指定字形信息,使用NDK开发JNI接口程序,最终在Android平台上开发运行定制的FreeType程序来解析指定字符信息,实现运行在Android平台上的APP在同一界面展示不同的字体信息。