收藏 分享(赏)

一种字库的制作方法和装置.doc

上传人:wspkg9802 文档编号:6327527 上传时间:2019-04-07 格式:DOC 页数:23 大小:504KB
下载 相关 举报
一种字库的制作方法和装置.doc_第1页
第1页 / 共23页
一种字库的制作方法和装置.doc_第2页
第2页 / 共23页
一种字库的制作方法和装置.doc_第3页
第3页 / 共23页
一种字库的制作方法和装置.doc_第4页
第4页 / 共23页
一种字库的制作方法和装置.doc_第5页
第5页 / 共23页
点击查看更多>>
资源描述

1、1说 明 书 摘 要 CP12133本 发 明 涉 及 一种字库的制作方法和装置,该方法包括:获取所述制作所述字库的所需语言的矢量字库;将所述矢量字库转换为点阵字库;利用所述所需语言的统一码的编码列表从所述点阵字库中选取字符;根据所述字符获取所述字符的第一字模数据和所述字符的第一属性;根据所述统一码的编码列表、所述字符的第一字模数据和所述字符的第一属性组成所述字库。因此,该字库的制作方法和装置易于实现,同时方便裁剪字库,从而使得该字库可以支持不同语言和不同字号。1摘 要 附 图 CP12133获取制作字库的所需语言的矢量字库将矢量字库转换为点阵字库利用统一码的编码列表从点阵字库中选取字符根据字

2、符获取第一字模数据和该字符的第一属性根据统一码的编码列表 、 字符的第一字模数据和第一属性组成字库挑选制作字库所需语言的统一码并组成统一码的编码列表1 0 11 0 21 0 41 0 51 0 61 0 3将第一字模数据进行裁剪并生成第二字模数据根据字符的第一属性计算第二字模数据的存储值并根据该存储值计算字符的第二属性根据统一码的编码列表 、 字符的第一属性 、 字符的第二属性和字符的第二字模数据组成字库1 0 71 0 81 0 91权 利 要 求 书 CP121331、一种字库的制作方法,其特征在于,所述方法包括:获取所述制作所述字库的所需语言的矢量字库;将所述矢量字库转换为点阵字库;利

3、用所述所需语言的统一码的编码列表从所述点阵字库中选取字符;根据所述字符获取所述字符的第一字模数据和所述字符的第一属性;根据所述统一码的编码列表、所述字符的第一字模数据和所述字符的第一属性组成所述字库。2、根据权利要求 1 所述的字 库的制作方法,其特征在于, 所 述 利用所述所需语言的统一码的编码列表从所述点阵字库中选取字符之前还包括:挑选所述制作所述字库的所需语言的统一码并建立所述统一码的编码列表。3、根据权利要求 1 所述的字 库的制作方法,其特征在于,所述根据所述字符获取所述字符的第一字模数据和所述字符的第一属性之后还包括:将所述字符的所述第一字模数据进行裁剪,从而生成第二字模数据;根据

4、所述字符的第一属性计算所述字符的所述第二字模数据的存储值和基于所述第二字模数据的存储值计算所 述 字 符 的 第 二 属 性 ;根据所述统一码的编码列表、所述字符的第一属性、所述字符的第二属性和所述字符的第二字模数据组成所述字库。4、根据权利要求 3 所述的字 库的制作方法,其特征在于,所述制作所述字库的所需语言的种类为两种或两种以上,并且所 述 制作的所述字库为多语言字库。5、根据权利要求 4 所述的字库的制作方法,其特征在于,所 述 制作所述多语言字库的所需的多个所述点阵字库之间具有不同的字符属性。6、根据权利要求 1 所述的字库的制作方法,其特征在于,所述字符的第2一字模数据和所述字符的

5、第一属性具体为:所述字符的第一字模数据为所述字符的以行对齐方式存储的实体数据;所 述 字符的第一属性包 括 所 述 字 符 整 体 的 宽 、高 ;所 述 字 符 实 体 的 宽 、高 ;所 述 字 符 实 体 相 对 于 所 述 字 符 整 体 的 水 平 方 向 、竖 直 方 向 的 偏 移 值 。7、根据权利要求 3 所述的字库的制作方法,其特征在于,所述将所述字符的所述第一字模数据进行裁剪,从而生成第二字模数据具体为:对所述第一字模数据进行裁剪,去掉所述第一字模数据中的无效部分,保留所述第一字模数据中的有效部分,并进行整体对齐,当所述第二字模数据结尾不足一个字节,则补足一个字节。8、根

6、据权利要求 3 所述的字 库的制作方法,其特征在于, 所 述 字符的第二字模数据的存储值的 计 算 公 式 为 :swhD8=其中, 为 所 述 字符的第二字模数据的存储值 , 为 所 述 字 符 实 体 的 宽 ,sw为 所 述 字 符 实 体 的 高 , 为 向 上 取 整 函 数 。sh9、根据权利要求 8 所述的字 库的制作方法,其特征在于, 所 述 字 符 的 第二 属 性 为 所 述 第 二 字 模 数 据 的 偏 移 地 址 ;所 述 第 二 字 模 数 据 的 偏 移 地 址 为所 述 字 符 在 第 二 字 模 数 据 库 中 之 前 的 所 有 的 所 述 字 符 的 第

7、二 字 模 数 据 的 存储值之 和 。10、一种字库的制作装置,其特征在于,所述装置包括:第一获取单元,用于获取所述制作所述字库的所需语言的矢量字库;转换单元,用于将所述矢量字库转换为点阵字库;选取单元,用于利用所述所需语言的统一码的编码列表从所述点阵字库中选取字符;第二获取单元,用于根据所述字符获取所述字符的第一字模数据和所述字符的第一属性;3第一组成单元,用于根据所述统一码的编码列表、所述字符的第一字模数据和所述字符的第一属性组成所述字库。11、根据权利要求 10 所述的字库的制作装置,其特征在于,所述装置还包括:挑选单元,用于挑选所述制作所述字库的所需语言的统一码并建立所述统一码的编码

8、列表。12、根据权利要求 10 所述的字 库的制作装置,其特征在于,所述装置还包括:生成单元,用于将所述字符的所述第一字模数据进行裁剪,从而生成第二字模数据;计算单元,用于根据所述字符的第一属性计算所述字符的所述第二字模数据的存储值和基于所述第二字模数据的存储值计算所 述 字 符 的 第 二 属 性 ;第 二 组 成 单 元 ,用 于 根据所述 统一码的编码 列表、所述字符的第一属性、所述字符的第二属性和所述字符的第二字模数据组成所述字库。1说 明 书 CP12133字 库 的 制 作 方 法 和 装 置技术领域本发明涉及嵌入式技术领域,尤其涉及一种字库的制作方法和装置。背景技术目前嵌入式设备

9、应用十分广泛,由于嵌入式系统在运算速度、存储空间等方面通常有很大的限制。若要在嵌入式设备上显示文字,尤其是需要显示多种语言文字, 单单移植个人计算机(Personal Computer,PC)上的字体字库是难以满足的。因此,集成多种语言字库并减少该字库所占用的存储空间,从而提高嵌入式系统的显示效率,成为了目前嵌入式系统需要解决的重要问题。在现有技术中,嵌入式设备字体显示方面使用较多的是点阵字库。嵌入式设备中所支持的点阵字库的制作方法主要分有三种:第一,将一种语言单独做成一个单一字库;第二,统计出会用到的所有字符做成特定字库;第三,利用统一码 Unicode 统一编码为 索引字库。 该统一码是一

10、种在计算机上使用的字符编码。它 为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。因此,统一码 Unicode 是可以容纳世界上所有文字和符号的字符编码方案。上述第一种字库制作方式适合用于英文等独立字符个体较少的语言,第二种字库制作方式适合用于汉语等独立字符个体较多的语言。前两种方式都不适合对多语言的支持。第三种字库制作方式适合对多语言字符的支持。当多语言同时显示时,则需要定制需要同时显示的字符,并从多语言字库中获得所需要的字模。现有技术中多语言字库一般只支持一种字号的字体,但是根据实际需要,2若想达到比较美观的效果,则需要对不同的语言采用不同

11、的字号,这是现有技术中无法实现的。另外,多语言字库中一般只存取整个字符宽和高的数据,但是在需要多语言同时显示时,只存取整个字符宽和高的数据会浪费了大量的存储空间,同时也影响显示速度。发明内容本发明的目的是,提供一种字库的制作方法和装置。该制作方法和装置能够支持多种语言,可以自主定制所需字符并且不同字符支持不同字号,能够大大减小了存储空间并且满足嵌入式系统的高效的查找和显示的要求,同时该字库的制备方法易于实现而且方便裁剪该字库。为实现上述目的,本发明提供了一种字库的制作方法,所述方法包括:获取所述制作所述字库的所需语言的矢量字库;将所述矢量字库转换为点阵字库;利用所述所需语言的统一码的编码列表从

12、所述点阵字库中选取字符;根据所述字符获取所述字符的第一字模数据和所述字符的第一属性;根据所述统一码的编码列表、所述字符的第一字模数据和所述字符的第一属性组成所述字库。优选地,所 述 利用所述所需 语言的统一码的编码列表从所述点阵字库中选取字符之前还包括:挑选所述制作所述字库的所需语言的统一码并建立所述统一码的编码列表。优选地,所述根据所述字符获取所述字符的第一字模数据和所述字符的第一属性之后还包括:将所述字符的所述第一字模数据进行裁剪,从而生成第二字模数据;根据所述字符的第一属性计算所述字符的所述第二字模数据的存储值和基于所述第二字模数据的存储值计算所 述 字 符 的 第 二 属 性 ;根据所

13、述统一码的编码列表、所述字符的第一属性、所述字符的第二属性和所述字符的第二字模数据组成所述字库。3进一步优选地,所述制作所述字库的所需语言的种类为两种或两种以上,并且所 述 制作的所述字库为多语言字库。进一步优选地,所 述 制作所述多 语言字库的所需的多个所述点阵字库之间具有不同的字符属性。优选地所述字符的第一字模数据和所述字符的第一属性具体为:所述字符的第一字模数据为所述字符的以行对齐方式存储的实体数据;所 述 字符的第一属性包 括 所 述 字 符 整 体 的 宽 、高 ;所 述 字 符 实 体 的 宽 、高 ;所 述 字 符 实体 相 对 于 所 述 字 符 整 体 的 水 平 方 向 、

14、竖 直 方 向 的 偏 移 值 。进一步优选地,述将所述字符的所述第一字模数据进行裁剪,从而生成第二字模数据具体为:对所述第一字模数据进行裁剪,去掉所述第一字模数据中的无效部分,保留所述第一字模数据中的有效部分,并进行整体对齐,当所述第二字模数据结尾不足一个字节,则补足一个字节。进一步优选地,所 述 字符的第二字模数据的存储值的 计 算 公 式 为 :swhD8=其中, 为 所 述 字符的第二字模数据的存储值 , 为 所 述 字 符 实 体 的 宽 ,sw为 所 述 字 符 实 体 的 高 , 为 向 上 取 整 函 数 。sh进一步优选地,所 述 字 符 的 第 二 属 性 为 所 述 第

15、二 字 模 数 据 的 偏 移 地 址 ;所 述 第 二 字 模 数 据 的 偏 移 地 址 为 所 述 字 符 在 第 二 字 模 数 据 库 中 之 前 的 所 有的 所 述 字 符 的 第 二 字 模 数 据 的 存储值之 和 。本发明还提供了一种字库的制作装置,所述装置包括:第一获取单元,用于获取所述制作所述字库的所需语言的矢量字库;转换单元,用于将所述矢量字库转换为点阵字库;选取单元,用于利用所述所需语言的统一码的编码列表从所述点阵字库中选取字符;第二获取单元,用于根据所述字符获取所述字符的第一字模数据和所述字符的第一属性;第一组成单元,用于根据所述统一码的编码列表、4所述字符的第一

16、字模数据和所述字符的第一属性组成所述字库。优选地,所述装置还包括:挑选单元,用于挑选所述制作所述字库的所需语言的统一码并建立所述统一码的编码列表。优 选 地 ,所述装置 还包括:生成 单元,用于将所述字符的所述第一字模数据进行裁剪,从而生成第二字模数据;计算单元,用于根据所述字符的第一属性计算所述字符的所述第二字模数据的存储值和基于所述第二字模数据的存储值计算所 述 字 符 的 第 二 属 性 ;第 二 组 成 单 元 ,用 于 根据所述统一码的编码列表、所述字符的第一属性、所述字符的第二属性和所述字符的第二字模数据组成所述字库。通过应用本发明公开的字库的制作方法和装置,挑选制作字库的所需语言

17、的统一码并建立统一码的编码列表;获取制作字库的所需语言的矢量字库再转换为点阵字库,利用编码列表从点阵字库中选取字符并获取该字符的第一字模数据和第一属性,根据该字符的第一字模数据和第一属性组成字库;或者,将字符的第一字模数据进行裁剪生成第二字模数据,计算该字符存储值和和第二属性,根据统一码的编码列表、字符的第一属性、字符的第二属性D和字符的第二字模数据组成字库,从而使得该字库的制作方法和装置易于实现,同时仅仅 更新编码列表就可以很方便的裁剪字库,从而使得该字库可以支持不同语言和不同字号。附图说明图 1 为本发明实施例提供的字库的制作方法的流程图;图 2 为本发明实施例提供的字符整体、字符实体显示

18、关系的示意图;图 3 为本发明实施例提供的字库的结构示意图;图 4 为本发明实施例提供所有字符的字符属性列表的示意图;图 5 为本发明实施例提供的第二字模数据库的示意图;5图 6 为本发明实施例提供的字库的制作装置的示意图。具体实施方式下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。图 1 为本发明实施例提供的字库的制作方法的流程图。如图所示,本发明实施例具体包括以下步骤:步骤 101,获取制作字库的所需语言的矢量字库。具体地,本发明实施例中制作的字库为多语言字库,故在制作字库之前首先需要确定该字库需要的语言种类,比如汉语、英语等。其中,该语言种类为两种或两种以上。然后在 Wind

19、ows 系统下 获取所需语言的矢量字库TrueType,比如 获取汉语 的矢量字库和英语 的矢量字库。其中, 汉语的矢量字库保存的是对每一个汉字的描述信息,比如一个笔划的起始、终止坐标,半径、弧度等等。其他语言的矢量字库与汉语的矢量字库类似。步骤 102,将所需语言的矢量字库转换为点阵字库。具体地,通过工具将所需语言的矢量字库转换为点阵字库。比如,通过ttf2bdf 等工具将 TrueType 矢量字库转换为 BDF 点阵字库文件。其中,汉语的点阵字库是将每一个汉字都分成 1616 或 2424 个点,用每个点的虚实来表示汉字的轮廓;英文的点阵字库将每个英文字母分成高度为 24 或 16,宽度

20、为可变的点数,以此来适应不同宽度的英文字符,用每个点的虚实来表示英文字母的轮廓。另外,其他 语言的点阵字库与英文的点阵字库类似。步骤 103,挑选制作字库的所需语言的统一码并建立统一码的编码列表。具体地,统一码也叫万国码或单一码,其中,该统一码是一种在计算机上使用的字符编码,其为每种语言中的每个字符设定了统一并且唯一的二进制编码。根据 国际组织制定的用数字 0-0x10FFFF 来映射世界上所有文字和符号,最多可以容纳 1114112 个字符,或者说有 1114112 个码位,该码位为分配给字6符的数字。比如汉语中的“王”这个字符对应的统一码为 0x738B。根据实际需要挑选制作字库的所需语言

21、的统一码。若所需语言为汉语,根据实际需要确定需要的汉语字符或字符集。该汉语字符或字符集是由产品的功能或用户的需要所决定的。一般情况下,一些产品所用到的字符和字符集都是固定的。比如,目前正在的应用的机顶盒,一般用到是 GB2312 标准的字符集。而对 于台湾用户,可能会用到 BIG5 字 库,因为该 BIG5 字库可以支持汉语繁体,可以方便台湾用户的使用。利用挑选出来的所有字符或字符集的统一码建立统一码的编码列表。比如:挑选的字符为 、系、统、置 、设,则该挑选的字符的各自的统一码为:0x2018、0x2019、0x7CFB、0x7EDF、0x7F6E、0x8BBE。利用挑选的字符的各自的统一码

22、建立统一码的编码列表。其中,该统一码的编码列表是按照由小到大的顺序排列所有的统一码,这样可以便于查找统一码。另外,该编码列表也可以在步骤 101 以前提前制作好的。步骤 104,利用所需语言的统一码的编码列表从点阵字库中选取字符。具体地,以 BDF 点阵字库为例,右单引号字符的统一码为 0x2019,查找到在 BDF 点阵字库中 对右单引号字符的描述如下:FONTBOUNDINGBOX 20 20 -2 -8STARTCHAR 0027ENCODING 39DWIDTH 7 0BBX 4 7 2 12在本发明实施例中,将该 BDF 文件中 FONTBOUNDINGBOX 字段第二个参数作为字符

23、的整体高属性;将 DWIDTH 字段的第一个参数作为字符的整体宽属性;将 BBX 字段的四个参数分 别作为字符的实体宽属性、字符的实体高属性、字符的实体相对于字符的整体的横向偏移和字符的实体相对于字符的整体的纵向偏移。7步骤 105,根据字符获取第一字模数据和字符的第一属性。具体地,以右单引号字符:为例,根据步骤 103 中查找到的在 BDF 点阵字库中对右单引号字符的描述,可以得到该右单引号字符的字模数据和字符的属性。其中,字符的第一字模数据为字符的实体数据;字符的第一属性包 括字 符 整 体 的 宽 、高 ;字 符 实 体 的 宽 、高 ;字 符 实 体 相 对 于 所 述 字 符 整 体

24、 的 水平 方 向 、竖 直 方 向 的 偏 移 值 。如 图 2 所 示 ,图 2 包 括 右单引号字符的整体 21和单引号字符的实体 22。右单引号字符的整体 21 的属性包括右单引号字符的整体宽和右单引号字符的整体高,单引号字符的实体 22 的属性包括右单引号字符的实体宽和右单引号字符的实体高,单引号字符的实体 22 与右单引号字符的整体 21 相比,得到单引号字符的实体 22 相对于右单引号字符的整体21 的水平方向的偏移和竖直方向的偏移值。各属性值根据 BDF 点阵字库中对右单引号字符的描述得出。具体如下:将该 BDF 文件中 FONTBOUNDINGBOX 字段第二个参数作为字符的

25、整体高属性;将 DWIDTH 字段的第一个参数作为字符的整体宽属性;将 BBX 字段的四个参数分别作为字符的实体宽属性、字符的实体高属性、字符的实体相对于字符的整体的横向偏移和字符的实体相对于字符的整体的纵向偏移。右单引号字符的整体宽度:7 位;即 DWIDTH 字段的第一个参数。右单引号字符的整体高度:20 位;即 FONTBOUNDINGBOX 字段第二个参数。右单引号字符的实体宽度:4 位;即 BBX 字段的第一个参数。右单引号字符的实体高度:7 位;即 BBX 字段的第二个参数。右单引号字符的实体相对于整体的水平偏移值:2 位;即 BBX 字段的第三个参数。右单引号字符的实体相对于整体

26、的垂直偏移值:12 位;即 BBX 字段的第四个参数。8另外,右单引号字符的第一字模数据为右单引号字符的实体数据。该右单引号字符的实体数据在 BDF 文件中的具体描述如表 1 所示。表 1 中包括原始数据即第一字模数据,用 16 进制表示;还包括将原始数据转化为 2 进制表示的数据;同时,原始数据中的有效部分为高 4 位,用二进制表示。表 1原 始 数 据 将 原 始 数 据 转 换 为二 进 制 的 数 据有 效 部 分70703060E0C0800111 00000111 00000011 00000110 00001110 00001100 00001000 00000111 0111

27、0011 0110 1110 1100 1000 步骤 106,根据统一码的编码列表、字符的第一字模数据和第一属性组成字库。优选地,本发明实施例提供的字库的制作方法还进一步包括:步骤 107,根据字符的第一字模数据生成第二字模数据。具体地,对第一字模数据进行裁剪,去掉第一字模数据中的无效部分,保留第一字模数据中的有效部分,并进行整体对齐,当第二字模数据结尾不足一个字节,则补 足一个字节。以右单引号字符: 为例,右单引号字符的第一字模数据如表 1 所示,即 0x70、0x70、0x30、0x60、0XE0、0xC0、0x80。因为第一字模数据中的有效部分为高 4 位,所以在本发明实施例中,将第一

28、字模数据中的无效部分即低 4 位去掉,重新拼合成字节,并进行整体对齐,第一字模数据中共有 7 个字节, 2 个第一字模数据的字节重新拼合成第二字模数据的 1 个字9节,最后剩下 1 个第一字模数据的字节生成第二字模数据的半个字节,则该半个字节后补 0,补足该字节。因此, 该右单引号字符的第二字模数据具体为0x77、0x36、0xEC、0x80。步骤 108,根据字符的第一属性计算字符的第二字模数据的存储值 和D基于存储值计算字符的第二属性。具体地,第二字模数据的存储值 是第二字模数据占用存储空间的大小。D即第二字模数据占用存储空间的字节数。该第二字模数据的存储值 的 计 算公 式 如 公 式

29、(1)所 示 。公 式 (1)swhD8=其中, 为 第二字模数据的存储值, 为 字 符 实 体 的 宽 , 为 字 符 实 体swsh的 高 , 为 向 上 取 整 函 数 。以右单引号字符: 为例,右 单引号字符的实体宽度为 4 位,右单引号字符的实体高度 7 位。根据公式(1)计算出右单引号字符的第二字模数据的存储值 为 4。这 与步骤 106 中的右单引号字符的第二字模数据的实际字节个数相D同。另 外 ,字 符 的 第 二 属 性 为 第 二 字 模 数 据 的 偏 移 地 址 ;第 二 字 模 数 据 的偏 移 地 址 为 字 符 在 第 二 字 模 数 据 库 中 之 前 的 所

30、有 的 字 符 的 第 二 字 模 数 据 的存储值之 和 。步骤 109,根据统一码的编码列表、字符的第一属性、字符的第二属性和字符的第二字模数据组成字库。具体地,由统一码的编码列表、字符的第一属性、字符的第二属性和字符的第二字模数据组成字库,如图 3 所示。该字库包括:字库头 31、所有字符的统一码的编码列表 32、所有字符的字符属性列表 33 和第二字模数据库 34。其中,字库头 31 包括该字库总字符的数目 N。所有字符的字符属性列表 33 包括第一字符的属性、第二字符的属性、10.、第 N 字符的属性,如图 4 所示。每一字符的属性包括 该字符的第一属性和第二属性。其中,该字符的第一

31、属性为该字符整 体 的 宽 、高 ;该字符实 体 的宽 、高 ;该字符实 体 相 对 于 该 字 符 整 体 的 水 平 方 向 、竖 直 方 向 的 偏 移 值 ;该字符的第二属性为该字符的偏移地址。该字符的偏移地址的计算过程为该字符 在 第 二 字 模 数 据 库 中 之 前 的 所 有 的 字 符 的 第 二 字 模 数 据 的 存储值之 和 。第二字模数据库 34 包括第一字符的第二字模数据、第二字符的第二字模数据、.、第 N 字符的第二字模数据,如图 5 所示。另外,不同语言同时显示对显示效果要求比较苛刻,通常的点阵字库仅支持一种固定的字号,导致不同语言显示时显示效果不佳,页面不够美

32、观,如果能够根据不同语言的实际情况,对不同的语言采用不同的字号,可以大大提升不同语言同时显示的页面效果。本字库中字符属性包括字符整体的宽、高,字符实体的宽、高,字符 实体相对于字符整体的水平、竖直偏移,字模数据的偏移地址,其中不同的字符含有各自的宽、高属性,使字库具备了不同语言采用不同字号的能力;同时,制作所述多语言字库所需的多个所述点阵之间可以采用不同的字符属性,即不同的语言的矢量字库转换为点阵字库的过程中,可以采用不同的字号,然后利用不同字号的所述点阵字库,制作所述多语言字库,此时多语言字库支持不同语言采用不同字号。因此,本发明实施例提供的字库的制作方法,根据挑选制作字库的所需语言的统一码

33、并建立统一码的编码列表,可以根据实际需要自主选择制作字库的所需语言;获取制作字库的所需语言的矢量字库再转换为点阵字库,可以根据实际需求定制所需字符,使得不同字符支持不同字号;利用编码列表从点阵字库中选取字符并获取该字符的第一字模数据和第一属性,根据字符的第一字模数据生成第二字模数据,第二字模数据为第一字模数据的有效部分,这样可以大量节省第二字模数据库的存储空间;计算该字符存储值 和和第二D属性,这样 可以提高查找字符的效率同时加快显示的速度;根据统一码的编码11列表、字符的第一属性、字符的第二属性和字符的第二字模数据组成字库,该字库的制作方法易于实现同时仅仅更新编码列表就可以很方便的裁剪字库。

34、图 6 为本发明实施例提供的字库的制作装置的示意图。如图所示,本发明实施例具体包括:第一获取单元 61、转换单元 62、挑选单元 63、选取单元64、第二获 取单元 65 和第一组成单元 66。第一获取单元 61 用于获取所述制作所述字库的所需语言的矢量字库;转换单元 62 用于将所述矢量字库转换为点阵字库;挑选单元 63 用于挑选制作字库的所需语言的统一码并建立统一码的编码列表;选取单元 64 用于利用所述所需语言的统一码的编码列表从所述点阵字库中选取字符;第二获取单元65 用于根据所述字符获取所述字符的第一字模数据和所述字符的第一属性;第一组成单元 66 用于根据所述统一码的编码列表、所述

35、字符的第一字模数据和所述字符的第一属性组成所述字库。优选地,本发明实施例提供的字库的制作装置还进一步包括:生成单元67、计算单 元 68 和第二组成单元 69。生成单元 67 用于根据所述字符的所述第一字模数据生成第二字模数据;计算单元 68 用于根据所述字符的第一属性计算所述字符的所述第二字模数据的存储值和基于所述第二字模数据的存储值计算所 述 字 符 的 第 二 属 性 ;第二 组成 单元 69 用于根据所述统一码的编码列表、所述字符的第一属性、所述字符的第二属性和所述字符的第二字模数据组成所述字库。具体地,第一获取单元 61 中制作的字库为多语言字库,故在制作字库之前首先需要确定该字库需

36、要的语言种类,比如汉语、英语等。其中,该语言种类为两种或两种以上。然后在 Windows 系统 下获取所需语言的矢量字库TrueType,比如 获取汉语 的矢量字库和英语 的矢量字库。转换单元 62 中通过工具将所需语言的矢量字库转换为点阵字库。比如,通过 ttf2bdf 等工具将 TrueType 矢量字库转换为 BDF 点阵字库文件。12挑选单元 63 中根据实际需要挑选制作字库的所需语言的统一码。若所需语言为汉语,根据实际需要确定需要的汉语字符或字符集。该汉语字符或字符集是由产品的功能或用户的需要所决定的。一般情况下,一些产品所用到的字符和字符集都是固定的。利用挑选出来的所有字符或字符集

37、的统一码建立统一码的编码列表。另外, 该编码列表为其他提前制作好的编码列表。选取单元 64 和第二获取单元 65 中以 BDF 点阵字库为例,右单引号字符的 统 一码为 0x2019,并在 BDF 点阵字库选取右单引号字符:,并查找到在BDF 点 阵字库中对右 单引号字符的描述,从 该描述中获取该字符的第一字模数据和第一属性。生成单元 67 中将第一字模数据中的无效部分即低 4 位去掉,重新拼合成字节,生成第二字模数据。计算单元 68 中第二字模数据的存储值 是第二字模数据占用存储空间D的大小。即第二字模数据占用存储空间的字节数。该第二字模数据的存储值的 计 算 公 式 如 公 式 (1)所

38、示 ;另 外 ,字 符 的 第 二 属 性 为 第 二 字 模 数 据 的 偏D移 地 址 ;第 二 字 模 数 据 的 偏 移 地 址 为 字 符 在 第 二 字 模 数 据 库 中 之 前 的 所 有的 字 符 的 第 二 字 模 数 据 的 存储值之 和 。第二组成单元 69 中字库包括:字库头 31、所有字符的统一码的编码列表32、所有字符的字符属性列表 33 和第二字模数据库 34,如图 3 所示。字库头31 包括该字库总字符的数目 N。所有字符的字符属性列表 33 包括第一字符的属性、第二字符的属性、.、第 N 字符的属性,如图 4 所示。每一字符的属性包括该字符的第一属性和第二属

39、性。其中,该字符的第一属性为该字符整体 的 宽 、高 ;该字符实 体 的 宽 、高 ;该字符实 体 相 对 于 该 字 符 整 体 的 水 平 方向 、竖 直 方 向 的 偏 移 值 ;该字符的第二属性为该字符的偏移地址。该字符的偏移地址的计算过程为该字 符 在 第 二 字 模 数 据 库 中 之 前 的 所 有 的 字 符 的 第 二字 模 数 据 的 存储值之 和 。第二字模数据库 34 包括第一字符的第二字模数据、13第二字符的第二字模数据、.、第 N 字符的第二字模数据,如 图 5 所示。本发明实施例提供的字库的制作方法,根据挑选单元挑选制作字库的所需语言的统一码并建立统一码的编码列表

40、,可以根据实际需要自主选择制作字库的所需语言;第一获取单元获取制作字库的所需语言的矢量字库再转换为点阵字库,可以根据实际需求定制所需字符,使得不同字符支持不同字号;利用编码列表从点阵字库中选取字符并获取该字符的第一字模数据和第一属性,通过生成 单元将字符的第一字模数据生成第二字模数据,第二字模数据为第一字模数据的有效部分,这样可以大量节省第二字模数据库的存储空间;计算该字符存储值 和和第二属性,这样可以提高查找字符的效率同时加快显D示的速度;最后由第二组成单元根据统一码的编码列表、字符的第一属性、字符的第二属性和字符的第二字模数据组成字库。该字库的制作装置易于实现同时仅仅更新编码列表就可以很方

41、便的裁剪字库。专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现, 为了清楚地 说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。结合本发明中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只 读存 储器(ROM)

42、、电可编 程 ROM、电可擦除可编程 ROM、寄存器、硬盘、可移 动 磁盘、 CD-ROM、或技 术领域内所公知的任意其它形式的存储介质中。14以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改 进 等,均 应包含在本发明的保护范围之内。1说 明 书 附 图 CP12133获取制作字库的所需语言的矢量字库将矢量字库转换为点阵字库利用统一码的编码列表从点阵字库中选取字符根据字符获取第一字模数据和该字符的第一属性根据统一码的编码列表

43、 、 字符的第一字模数据和第一属性组成字库挑选制作字库所需语言的统一码并组成统一码的编码列表1 0 11 0 21 0 41 0 51 0 61 0 3将第一字模数据进行裁剪并生成第二字模数据根据字符的第一属性计算第二字模数据的存储值并根据该存储值计算字符的第二属性根据统一码的编码列表 、 字符的第一属性 、 字符的第二属性和字符的第二字模数据组成字库1 0 71 0 81 0 9图 12字符整体高字符整体宽字符实体宽字符实体高水平方向偏移竖直方向偏移2 12 2图 23字库头所有字符的统一码的编码列表所有字符的字符属性列表所有字符的第二字模数据库3 13 23 33 4图 3第一字符的属性第二字符的属性. . .第 N 字符的属性图 44第一字符的第二字模数据第二字符的第二字模数据. . .第 N 字符的第二字模数据图 5第一获取单元转换单元选取单元第二获取单元第一组成单元挑选单元6 1 6 2 6 4 6 5 6 66 3生成单元计算单元第二组成单元6 7 6 8 6 9图 6

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 社会民生

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报