一种字体文件制造技术

技术编号:4167488 阅读:272 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及应用系统中的字体文件技术领域,更具体地说,涉及一种以数组及二级数组形式来组织数据的字体文件。本发明专利技术的一种字体文件,可以描述一个字符集的一个连续字型段或全部字型,所述字体文件的每一种数据用一个数组表示;所述字体文件的每个字符集都可由其编码方式,通过计算得出各个字符的字型在所述字符集所有字型中的字型索引值,用所述字型索引值访问各个数组得到该字符的各个字型数据。本发明专利技术的字体文件通过数组方式组织字型数据,从而可以通过数组索引方式访问,使得字体文件小、访问速度快;而且文件内数据4字节对齐,可以通过内存映射的方式来使用,从而在多进程模式下减少内存的占用,使系统具有更高的运行效率。

A font file

The invention relates to the technical field of font files in an application system, more specifically, a font file that organizes data in an array and a two level array. A font file of the invention, a continuous type segment can describe a character set or all fonts, each kind of data of the font file is represented by an array of each character; the font file can be set by the encoding method, obtained by calculating the various characters in the font character set font font index all the values in the array, each font data access each of the character in the font index value. The invention of the font file through the array organization to access font data, through the array index, the font file is small, fast access speed; and the file data in 4 byte aligned by memory mapping way to use, thereby reducing memory usage in multi process mode, the system has more efficiency high.

【技术实现步骤摘要】

本专利技术涉及应用系统中的字体文件
,更具体地说,涉及一 种以数组及二级数组形式来组织数据的字体文件。
技术介绍
在各种应用系统中,人们都希望应用程序能够尽量少的占用内存, 这样就能在同样的硬件平台上使系统能够有更好的运行性能。特别是在 嵌入式应用系统中,因为基于产品成本的考量,硬件性能往往有限,因 此,那些占用硬件资源越少的应用程序越受欢迎。特别是内存资源,是 编写嵌入式应用程序时要着重考虑的因素之一。现有技术中的字体文件存在占用内存空间大的问题,特别是在多进 程模式下,每一进程占用一份内存资源。对于嵌入式应用系统中,这种 问题就更急待于解决。
技术实现思路
鉴于上述现有技术的不足,本专利技术的一个目的是提供一种通过数组 方式组织字型数据,从而可以通过数组索引方式访问的字体文件。本专利技术的另一个目的在于提供一种通过数组方式组织字型数据,从而可以通过数组索引方式访问的;并且内部数据4字节对齐的,可以通 过内存映射的方式让多个进程共享访问的字体文件。本专利技术提供的一种字体文件包括文件头、字体信息、BBOX数组、X 方向的前进值数组,丫方向的前进值数组,字型数据索引数组、字型数 据数组几个部分;其中所述文件头记录每个数组在所述字体文件中的位置和字节长度,所述字体信息存储所述字体文件的字型信息,所述BBOX数组以数组方式存储所述字体文件的各字型的BBOX信息,所述X方向的前进值数组以数组方式存储所述字体文件的各字型在X 方向上的前进值信息,所述Y方向的前进值数组以数组方式存储所述字体文件的各字型在Y 方向上的前进值信息,所述字型数据索引数组以数组方式存储所述字体文件的各字型的字 型数据索引值,所述字型数据数组以数组方式存储所述字体文件的各字型的字型数+口 TO。作为优选,所述字体信息可以包括描述所述字体文件的第一个字型 索引值的,即起始字型码、描述所述字体文件的最后一个字型索引值 的,即终止字型码和一个默认字型码。作为优选,所述文件头可以还包括文件头长度信息和所述字体文件 总体长度信息。作为优选,所述字体可以为点阵字体,所述字型数据索引数组和字 型数据数组分别为字型位图索引数组和字型位图数组。由于每个字型的位图信息长度不等,所述字型位图索引数组可以以 二级索引的方式存储所述字体文件的各字型的字型位图数组的索引值。所述字体也可以为矢量字体。为了使字体文件可以以内存映射方式使用,作为优选,可以使所有4 字节大小的数据以及各数组的开头在所述字体文件中的位置都是4的倍 数,不是4的倍数时在该数据或数组的文件头方向添加无用的字节补齐。本专利技术提供的另一种字体文件可以描述一个字符集的一个连续字型 段或全部字型,所述字体文件的每一种数据用一个数组表示;所述字体 文件的每个字符集都可由其编码方式,通过计算得出各个字符的字型在52008所述字符集所有字型中的字型索引值,用所述字型索引值访问各个数组 得到该字符的各个字型数据。为了使字体文件可以以内存映射方式使用,作为优选,所述字体文件 内部的数据4字节对齐。所述对齐的方式可以为在在所述数据的头文件方向添加对齐数组。 本专利技术的字体文件通过数组方式组织字型数据,从而可以通过数组 索引方式访问,使得字体文件小、访问速度快;而且可以通过内存映射的方式来使用,从而在多进程模式下减少内存的占用,使系统具有更高的运行效率。附图说明图1为根据本专利技术的一个实施例的字体文件的字型单色位图数据。 具体实施例方式下面结合附图,对本专利技术的具体实施方式作进一步的详细说明。对 于所属
的技术人员而言,从对本专利技术的详细说明中,本专利技术的 上述和其他目的、特征和优点将显而易见。在本专利技术的一个实施例中,本专利技术的字体文件的字体为位图字体,在这里将这种字体简称为VBF字体(Varibale Bitmap Font,即可变位图字 体)。在本专利技术的一个实施例中,所述VBF字体文件的布局如下面表一所 示,然应了解,其仅为示例性质,本专利技术不受其限制。表一,VBF字体文件的布局<table>table see original document page 6</column></row><table><table>table see original document page 7</column></row><table>终止字型码int4字体中最后一个字型码 (last_glyph)默认字型码int4字体中的默认字型码(def— glyph)对齐数组2charg0使以下内容4字节对齐BBOX数组VBF—BBOX □Sizeof(VBF—BBOX) x(last—glyph- . first_glyph+l)VBF BBOX结构的大小是4 字节对齐数组3char □0使以下内容4字节对齐x方向前进值数组char[]last—glyph-first—glyph+1对齐数组4char口根据实际情况计算使以下内容4字节对齐Y方向前进值数组char[]last_glyph-first—giyph+1对齐数组5char[]根据实际情况计算使以下内容4字节对齐字型位图偏移量数组unsigned int4x( last—glyph-first—glyph+1 )字型位图偏移量,指某个字 型的位图数据在所有字型位 图数据中的偏移量对齐数组6char口根据实际情况计算使以下内容4字节对齐所有字型位图数据数组charQ至文件尾其中,各对齐数组的目的是使其后的数据或数组的开头的位置为4字 节的倍数,以便于采用内存映射的方式访问字体。当然若对应的数据或 数组的开头的位置已经是4字节的倍数,对应的对齐数组可以省略或使 其字节大小为0。字体信息中的起始字型码和终止字型码代表该字体所描述的字型片 段,当由某个字符值计算出来的索引值不在该字体描述的字型片段内 时,用默认字型码表示。在本专利技术的一个实施例中,每个数组的地址,就是字体文件映射到 内存的地址加上该数组在文件中的位置。在本专利技术的一个实施例中,文件头、字体信息的内容都是不变的, 可以读取到一个固定的结构中。根据文件头中的字体大小,使用mmap系统调用,把字体文件映射到进程地址空间。假定映射到地址map—address,则BBOX数组的地址 就是map—address加上BBOX数组在文件中的偏移量(记为bbox),其中 文件中的偏移量在表一所述的文件布局中表示为,BBOX数组相对于字 体名称的偏移量加上文件头长度,类似可以得到x方向前进值数组的地 址(记为advance—x), y方向前进值数组的地址(记为advance—y),字型 位图偏移量数据(记为bits—offset),所有字型位图数据(记为 all—glyph—bits)。假设某个字符在字符集中的字型索引是cur_glyph,该字体的第一个 字型在字符集中的索引是first—glyph。那么该字符的字型数据如下BBOX是bbox[cur一glyph-first glyph]x方向前进值是advance—x [cur—glyph-fir$t glyph]y方向前进值是advance—y [cur一glyph國first glyph]l本文档来自技高网
...

【技术保护点】
一种字体文件,其特征在于所述字体文件包括文件头、字体信息、BBOX数组、X方向的前进值数组,Y方向的前进值数组,字型数据索引数组、字型数据数组几个部分;其中 所述文件头记录每个数组在所述字体文件中的位置和字节长度, 所述字体信息 存储所述字体文件的字型信息, 所述BBOX数组以数组方式存储所述字体文件的各字型的BBOX信息, 所述X方向的前进值数组以数组方式存储所述字体文件的各字型在X方向上的前进值信息, 所述Y方向的前进值数组以数组方式存储所述字 体文件的各字型在Y方向上的前进值信息, 所述字型数据索引数组以数组方式存储所述字体文件的各字型的字型数据索引值, 所述字型数据数组以数组方式存储所述字体文件的各字型的字型数据。

【技术特征摘要】
1.一种字体文件,其特征在于所述字体文件包括文件头、字体信息、BBOX数组、X方向的前进值数组,Y方向的前进值数组,字型数据索引数组、字型数据数组几个部分;其中所述文件头记录每个数组在所述字体文件中的位置和字节长度,所述字体信息存储所述字体文件的字型信息,所述BBOX数组以数组方式存储所述字体文件的各字型的BBOX信息,所述X方向的前进值数组以数组方式存储所述字体文件的各字型在X方向上的前进值信息,所述Y方向的前进值数组以数组方式存储所述字体文件的各字型在Y方向上的前进值信息,所述字型数据索引数组以数组方式存储所述字体文件的各字型的字型数据索引值,所述字型数据数组以数组方式存储所述字体文件的各字型的字型数据。2. 如权利要求1所述的字体文件,其特征在于所述字体信息包括描 述所述字体文件的第一个字型索引值的,即起始字型码、描述所述字体 文件的最后一个字型索引值的,即终止字型码和一个默认字型码。3. 如权利要求1所述的字体文件,其特征在于所述文件头还包括文 件头长度信息和所述字体文件总体长度信息。4. 如权利要求1所述的字体文件,其特征在于...

【专利技术属性】
技术研发人员:魏永明董俊杰闫晓伟王旭光焦力波
申请(专利权)人:北京飞漫软件技术有限公司
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1