System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一次性加载字体的方法、装置、设备及存储介质制造方法及图纸_技高网

一次性加载字体的方法、装置、设备及存储介质制造方法及图纸

技术编号:41246053 阅读:4 留言:0更新日期:2024-05-09 23:56
本申请涉及字体加载技术领域,特别是涉及到一种一次性加载字体的方法、装置、设备及存储介质,其中方法包括:在字库文件中的字符映射数据块中获取字符对应的索引值;基于字模数据位置表中的每个字符获得对应的偏移量的值;根据每个偏移量的值和字形数据的长度,依次计算出每个字符对应的字模数据索引值;基于当前输入的字符的索引值识别对应的字模数据索引值,并计算当前输入字符的第一占用字节数;基于字形数据的起始位置和当前所述字模数据索引值确定第一位置,并从所述第一位置开始复制所述第一占用字节数对应数值的数据到指定数组进行显示。本申请能够根据所输入的字符来动态获取该字符的数据,从而减少了对内存的消耗。

【技术实现步骤摘要】

本申请涉及字体加载,特别是涉及到一种一次性加载字体的方法、装置、设备及存储介质


技术介绍

1、字体文件中主要存储两种信息,一种是字符点阵数组,另一种是对应的unicode(万国码)编码数组数据。首先每个字符的点阵数据所占字节数不相等,比如,""@这两个字符,它们所占的字节数不相等,这样做是为了节省空间将字符中空的行和列的地方不转化为点阵。与此同时,就需要其他信息来控制字符的显示位置。因此就有了描述unicode偏移、字型大小和位置偏移的点阵数组。现存的技术主要是把字型屏幕像素映射和点阵数组一次性存储起来,然后根据所输入字符从点阵数组中调用对应数据来显示。但是对应需要的存储也相应的增大,这会浪费很大的存储。

2、因此,字体文件中现有的字符存储和显示的过程中对内存的消耗大的问题是亟待解决的问题。


技术实现思路

1、本申请的主要目的为提供一种一次性加载字体的方法、装置、设备及存储介质,旨在解决字体文件中现有的字符存储和显示的过程中对内存的消耗大的技术问题。

2、为了实现上述专利技术目的,本申请提出一种一次性加载字体的方法,所述方法包括:

3、在字库文件中的字符映射数据块中获取字符对应的索引值;

4、基于字模数据位置表中的每个字符获得对应的偏移量的值;

5、根据每个偏移量的值和字形数据的长度,依次计算出每个字符对应的字模数据索引值;

6、基于当前输入的字符的索引值识别对应的字模数据索引值,并计算当前输入字符的第一占用字节数;

7、基于字形数据的起始位置和当前所述字模数据索引值确定第一位置,并从所述第一位置开始复制所述第一占用字节数对应数值的数据到指定数组进行显示。

8、进一步地,所述在字库文件中的字符映射数据块中获取字符对应的索引值的步骤之前,包括:

9、从字库文件的初始位置开始,搜索第一标识符;

10、基于所述第一标识符,获取对应的头部信息数据的长度;

11、基于头部信息数据的长度,确定所述头部信息数据的结束位置;

12、从所述结束位置作为起点搜索第二标识符;

13、基于第二标识符,获取对应的字符映射数据块。

14、进一步地,所述基于字模数据位置表中的每个字符获得对应的偏移量的值的步骤之前,包括:

15、基于所述字符映射数据块的数据结束位置,在所述字库文件中识别第三标识符;

16、基于所述第三标识符,获取对应的所述字形数据位置表。

17、进一步地,所述基于字模数据位置表中的每个字符获得对应的偏移量的值的步骤,包括:

18、读取所述字模数据位置表中指定位置的数据,获取到对应的偏移量总个数;

19、依次读取所述偏移量总个数中每个个数对应的字符的偏移量,得到偏移量的值。

20、进一步地,所述根据每个偏移量的值和字形数据的长度,依次计算出每个字符对应的字模数据索引值的步骤,包括:

21、将字模数据位置表的数据结束位置作为识别的起始位置,识别第四识别符;

22、基于第四识别符,获取对应的字形表内的字形数据的长度;

23、设当前为第i个字符,则第i个字符的字模数据索引值为第i+1个偏移量的值与第i个偏移量的值之间的偏移量差值,其中i为正整数,且大于或等于1且小于或等于于n-1,其中n等于偏移量的值的总个数;

24、当i=n时,第i个字符的字模数据索引值为所述字形数据的长度的值减去第i个偏移量的值。

25、进一步地,所述基于当前输入的字符的索引值识别对应的字模数据索引值,并计算当前输入字符的第一占用字节数的步骤,包括:

26、识别当前输入的字符,并将所述字符转化为对应的unicode码;

27、基于所述unicode码在所述字符映射数据块获取对应的索引值;

28、识别所述索引值对应的当前字模数据索引值以及当前字模数据索引值的下一个所述字模数据索引值;

29、计算所述下一个所述字模数据索引值与所述当前字模数据索引值的差值,得到所述第一占用字节数。

30、进一步地,所述基于字形数据的起始位置和当前所述字模数据索引值确定第一位置,并从所述第一位置开始复制所述第一占用字节数对应数值的数据到指定数组进行显示的步骤,包括:

31、将所述起始位置与当前所述字模数据索引值的和作为字库文件中的所述第一位置;

32、识别当前输入字符对应第一占用字节数;

33、从第一位置开始复制对应的所述第一占用字节数对应数值的字节到字型屏幕像素映射数组中进行显示。

34、本申请的第二方面还提出一种一次性加载字体的装置,所述装置包括:

35、映射索引模块,用于在字库文件中的字符映射数据块中获取字符对应的索引值;

36、偏移量计算模块,用于基于字模数据位置表中的每个字符获得对应的偏移量的值;

37、字模数据索引模块,用于根据每个偏移量的值和字形数据的长度,依次计算出每个字符对应的字模数据索引值;

38、占用字节计算模块,用于基于当前输入的字符的索引值识别对应的字模数据索引值,并计算当前输入字符的第一占用字节数;

39、复制显示模块,用于基于字形数据的起始位置和当前所述字模数据索引值确定第一位置,并从所述第一位置开始复制所述第一占用字节数对应数值的数据到指定数组进行显示。

40、本申请的第三方面还提出一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述中任一项所述方法的步骤。

41、本申请的第四方面还提出一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述中任一项所述方法的步骤。

42、有益效果:

43、本申请在需要进行显示时,通过先识别当前输入一个字符,根据字符在字符映射数据块中获取对应的索引值,然后通过索引值和计算的偏移量信息计算出相应的字模数据索引值,并根据字模数据的起始位置确定第一位置,根据第一位置进行对应内容的加载显示,而不用一次性将所有显示字体统统直接加载进内存空间中,而等本次显示结束之后,可将当前数据所占用的内存释放掉,本申请提出的方法能够根据所输入的字符来动态获取该字符的数据,精简了字型屏幕像素映射数组的内存占用,从而减少了对内存的消耗。

本文档来自技高网...

【技术保护点】

1.一种一次性加载字体的方法,其特征在于,所述方法包括:

2.根据权利要求1所述的一次性加载字体的方法,其特征在于,所述在字库文件中的字符映射数据块中获取字符对应的索引值的步骤之前,包括:

3.根据权利要求1所述的一次性加载字体的方法,其特征在于,所述基于字模数据位置表中的每个字符获得对应的偏移量的值的步骤之前,包括:

4.根据权利要求1所述的一次性加载字体的方法,其特征在于,所述基于字模数据位置表中的每个字符获得对应的偏移量的值的步骤,包括:

5.根据权利要求1所述的一次性加载字体的方法,其特征在于,所述根据每个偏移量的值和字形数据的长度,依次计算出每个字符对应的字模数据索引值的步骤,包括:

6.根据权利要求1所述的一次性加载字体的方法,其特征在于,所述基于当前输入的字符的索引值识别对应的字模数据索引值,并计算当前输入字符的第一占用字节数的步骤,包括:

7.根据权利要求5所述的一次性加载字体的方法,其特征在于,所述基于字形数据的起始位置和当前所述字模数据索引值确定第一位置,并从所述第一位置开始复制所述第一占用字节数对应数值的数据到指定数组进行显示的步骤,包括:

8.一种一次性加载字体的装置,其特征在于,所述装置包括:

9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。

10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述方法的步骤。

...

【技术特征摘要】

1.一种一次性加载字体的方法,其特征在于,所述方法包括:

2.根据权利要求1所述的一次性加载字体的方法,其特征在于,所述在字库文件中的字符映射数据块中获取字符对应的索引值的步骤之前,包括:

3.根据权利要求1所述的一次性加载字体的方法,其特征在于,所述基于字模数据位置表中的每个字符获得对应的偏移量的值的步骤之前,包括:

4.根据权利要求1所述的一次性加载字体的方法,其特征在于,所述基于字模数据位置表中的每个字符获得对应的偏移量的值的步骤,包括:

5.根据权利要求1所述的一次性加载字体的方法,其特征在于,所述根据每个偏移量的值和字形数据的长度,依次计算出每个字符对应的字模数据索引值的步骤,包括:

6.根据权利要求1所述的一次性加载字体的方法,其特征在...

【专利技术属性】
技术研发人员:卢荣壮颜斌李耀轩
申请(专利权)人:深圳市沃特沃德信息有限公司
类型:发明
国别省市:

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

1