[发明专利]一种字体加载方法、装置、终端及存储介质有效
| 申请号: | 201811425863.8 | 申请日: | 2018-11-27 |
| 公开(公告)号: | CN109492195B | 公开(公告)日: | 2023-02-14 |
| 发明(设计)人: | 尹成 | 申请(专利权)人: | 武汉斗鱼网络科技有限公司 |
| 主分类号: | G06F40/109 | 分类号: | G06F40/109 |
| 代理公司: | 北京品源专利代理有限公司 11332 | 代理人: | 孟金喆 |
| 地址: | 430070 湖北省武汉市武汉东湖*** | 国省代码: | 湖北;42 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 字体 加载 方法 装置 终端 存储 介质 | ||
1.一种字体加载方法,其特征在于,包括:
将字体文件分解为至少两个子字体文件;
通过至少两个子线程将各所述子字体文件并行转换为各字体承载集Typeface;
将各所述字体承载集Typeface合并得到总字体承载集,并将所述总字体承载集加载至字体映射表SystemFontMap中;
其中,所述将字体文件分解为至少两个子字体文件,包括:
创建以英文字母a-z为类型标识的各空字符集,以及分别与各所述空字符集匹配的相似矩阵Ai,其中相似矩阵Ai是与以索引为i的英文字母为类型标识的空字符集匹配,i取0-25的正整数;
建立对角线长度为所述字体文件的长度的单位矩阵AT;
根据所述字体文件中各字符的类型标识,确定与各所述字符分别对应的所述相似矩阵Ai,并根据如下公式确定特征向量vi:
vi=AiAT;
基于所述特征向量vi将所述字体文件中各所述字符分解至各所述空字符集中,将得到的各空字符集作为各子字体文件。
2.根据权利要求1所述的方法,其特征在于,所述将各所述字体承载集Typeface合并得到总字体承载集,包括:
建立用于存储各所述字体承载集Typeface的第一数组,其中,所述第一数组的长度是所述字体承载集Typeface的个数;
创建以两个相邻英文字母为对角线元素的对角矩阵L;
基于所述第一数组和所述对角矩阵L将各所述字体承载集Typeface进行结构化合并,得到所述总字体承载集。
3.根据权利要求2所述的方法,其特征在于,将各所述字体承载集Typeface进行结构化合并,得到所述总字体承载集,包括:
建立用于存储所述总字体承载集的第二数组,其中,所述第二数组的长度是所述字体文件的长度;
L[j]表示对角矩阵L中索引为j的元素,将j初始化为0;
以所述第一数组的首个字体承载集Typeface作为当前元素,根据当前元素的首字母α和下一个元素的首字母β组成二元转置矩阵
判断m×L[j]=0是否成立;若是,则将所述当前元素拷贝至所述第二数组中;否则,将下一个元素更新为当前元素,返回执行根据当前元素的首字母α和下一个元素的首字母β组成二元转置矩阵m的操作,直至m×L[j]=0成立;
将j+1的结果更新为j,返回执行以所述第一数组的首个字体承载集Typeface作为当前元素的操作,直至j=26,并以所述第二数组存储的元素作为总字体承载集。
4.根据权利要求1所述的方法,其特征在于,所述通过至少两个子线程将各所述子字体文件并行转换为各字体承载集Typeface,包括:
根据已创建的线程池,得到至少两个子线程;
在各子线程中基于预设的字符编码标准将各所述子字体文件并行转换为各字体承载集Typeface。
5.根据权利要求4所述的方法,其特征在于,还包括:根据所述线程池的构建算法创建线程池ThreadPool26,其中,所述构建算法包括:
ThreadPool26=2core+k;
其中,core表示线程池核心数且取值2或是4,K表示闲置线程数;当core=2时,k=22;当core=4时,k=10。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉斗鱼网络科技有限公司,未经武汉斗鱼网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811425863.8/1.html,转载请声明来源钻瓜专利网。





