意图。
[0059]在实施例一的基础上,所述显示字符的方法在获取待显示字符的编码信息之前或者之后,还包括:
[0060]步骤104,预先存储常用字符的Unicode编码以及常用字符的轮廓信息。
[0061]实施例三
[0062]参考图3,图3是本发明实施例显示字符的方法第三实施例的流程示意图。
[0063]在实施例一的基础上,所述显示字符的方法还包括:
[0064]步骤105,预先存储字库的宽度信息。
[0065]具体的,在显示汉字或者字符的时候,都需要获取每一个汉字或者字符的宽度信息进行预排版,比如说电子书之类的,每次打开显示是当前页,但是这个时候后台在快速的获取字体宽度信息进行预版本,才能得到当前是第几页,一共有多少页,只有这样才实现快速翻页。而传统的做法都是根据汉字或者字符的Unicode编码从字库里面计算得到宽度信息,这样又要计算,又得从字库里面读取信息,就太慢了,关是文件的读取速度就特别慢了。所以通过PC端的处理工具实现提取字库的的宽度信息保存到一个文件,为了尽量减小文件大小,可以根据需求提取主要宽度信息,比如说12号字体到48号字体的偶数,这样既全面又通用了。在系统加载的时候,就把这个宽度信息文件加载到内存中,每次需要宽度信息就可以直接读取内存,速度得到大幅提升。
[0066]实施例四
[0067]参考图4,图4是本发明实施例显示字符的装置的功能模块示意图。
[0068]在实施例四中,所述显示字符的装置包括:
[0069]获取模块401,用于获取待显示字符的编码信息,所述编码信息包括Unicode编码;
[0070]确定模块402,用于根据所述编码信息确定所述待显示字符是否在预先存储的编码信息中;
[0071]优选地,参考图5,图5是本发明实施例确定模块402的功能模块示意图。所述确定模块402,包括:
[0072]确定单元501,用于根据所述待显示字符的Unicode编码,确定所述待显示字符的Unicode编码是否在预先存储的Unicode编码中,且所述待显不字符的字号是否在预先存储的字号范围内。
[0073]具体的,在很多嵌入式设备中,比如是学习机、词典机中,有很多的生僻字和字造字要显示,制作一个比较完整的字库大概有四五万个汉字或者字符,导致整个字库文件很大,一般在15M以上;由于系统的内存大小限制,字库文件不能一次性加载到内存中,传统做法是读取的方式来获取汉字或者字符轮廓信息再计算出字模来显示汉字。如果我们通过PC端的工具把常用汉字和常用符号的轮廓信息提取出来保存文件的形式,在系统加载的时候把本文件一次性加载到内存中,直接操作内存比读取字库文件要快很多倍。比如把常用汉字GBK2312编码和常用符号(一共7000个左右)的轮廓信息提取出来,保存文件大小大概是1.6M。
[0074]具体的,如果是显示的内容大部分是英文字符的话,即使通过上面第二点进行了优化,但是感觉还是有点慢,比如在这种情况下(看英文电子书、或者英文词典):屏幕比较大,字号比较小,而且显示的字符大部分是英文字符或者全是,一屏显示的字符数达到上千个;即使计算出单个字模很快,但是显示字符多了,累加起来显示时间就变长了,这里主要是消耗根据字符轮廓信息计算出字模的时间。如果我们通过PC端的工具把英文字符的大小写和常用符号大概在128个左右(ASCII编码),主要把字号较小的英文字符或者符号通过轮廓信息计算出字模信息保存到一个文件,大概是2M,在系统加载的时候把本文件一次性加载到内存中,在这种情况下,就不用去读字库的轮廓信息,也不要去计算字模了,相等于是点阵字体了,显示速度较快。
[0075]显示模块403,用于若是,则直接从预先存储的编码信息中获取所述待显示字符的轮廓信息,根据所述轮廓信息绘制字符图形并显示所述待显示字符。
[0076]优选地,参考图6,图6是本发明实施例显示模块403的功能模块示意图。所述显示模块403,包括:
[0077]显示单元601,用于若确定所述待显示字符的Unicode编码在预先存储的Unicode编码中,且所述待显示字符的字号也在预先存储的字号范围内,则通过GDI绘制字符图形,并显示所述待显示字符。
[0078]具体的,a、把字符宽高信息提取保存文件形式,在系统启动的时候一次性加载到内存,可以少获取一次字库信息。
[0079]b、把常用字符比如GBK2312字符集的轮廓信息提取保存文件形式,在系统启动的时候一次性加载到内存,避免读取字库信息了,在文件系统读取文件是很慢的,所以对提高速度有非常大帮助。
[0080]C、把英文字符和常用符号转换成点阵字体,保存文件形式,在系统启动的时候一次性加载到内存,不同通过大量的数学计算就可以显示字体了,显示速度与点阵字体相当。
[0081]本发明实施例通过获取待显示字符的编码信息,所述编码信息包括Unicode编码;根据所述编码信息确定所述待显示字符是否在预先存储的编码信息中;若是,则直接从预先存储的编码信息中获取所述待显示字符的轮廓信息,根据所述轮廓信息绘制字符图形并显示所述待显示字符,从而全面提高矢量字体的显示速度,有效提高系统运行速度,提高用户体验;并能节省系统资源,有效省电,提供更长的续航能力。
[0082]实施例五
[0083]参考图7,图7是本发明实施例显示字符的装置的功能模块示意图。
[0084]在实施例四的基础上,所述方法还包括:
[0085]第一存储模块404,用于预先存储常用字符的Unicode编码以及常用字符的轮廓
?目息O
[0086]实施例六
[0087]参考图8,图8是本发明实施例显示字符的装置的功能模块示意图。
[0088]在实施例四的基础上,所述方法还包括:
[0089]第二存储模块405,用于预先存储字库的宽度信息。
[0090]具体的,在显示汉字或者字符的时候,都需要获取每一个汉字或者字符的宽度信息进行预排版,比如说电子书之类的,每次打开显示是当前页,但是这个时候后台在快速的获取字体宽度信息进行预版本,才能得到当前是第几页,一共有多少页,只有这样才实现快速翻页。而传统的做法都是根据汉字或者字符的Unicode编码从字库里面计算得到宽度信息,这样又要计算,又得从字库里面读取信息,就太慢了,关是文件的读取速度就特别慢了。所以通过PC端的处理工具实现提取字库的的宽度信息保存到一个文件,为了尽量减小文件大小,可以根据需求提取主要宽度信息,比如说12号字体到48号字体的偶数,这样既全面又通用了。在系统加载的时候,就把这个宽度信息文件加载到内存中,每次需要宽度信息就可以直接读取内存,速度得到大幅提升。
[0091]以上结合具体实施例描述了本发明实施例的技术原理。这些描述只是为了解释本发明实施例的原理,而不能以任何方式解释为对本发明实施例保护范围的限制。基于此处的解释,本领域的技术人员不需要付出创造性的劳动即可联想到本发明实施例的其它【具体实施方式】,这些方式都将落入本发明实施例的保护范围之内。
【主权项】
1.一种显示字符的方法,其特征在于,所述方法包括: 获取待显示字符的编码信息,所述编码信息包括Unicode编码; 根据所述编码信息确定所述待显示字符是否在预先存储的编码信息中; 若是,则直接从预先存储的编码信息中获取所述待显示字符的轮廓信息,根据所述轮廓信息绘制字符图形并显示所述待显示字符。2.根据权利要求1所述的方法,其特征在于,所述根据所述编码信息确定所述待显示字符是否在预先存储的编码信息中,包括: 根据所述待显示字符的Unicode编码,确定所述待显示字符的Unicode编码是否在预先存储的Unicode编码中,且所述待显示字符的字号是否在预先存储的字号范围内。3.根据权利要求1所述的方法,其特征在于,所述直接从预先存储的编码信息中获取所述待显示字符的轮廓信息,根据所述轮廓信息绘制字符图形并显示所述待显示字符,包括: 若确定所述待显示字符的Unicode编码在预先存储的Unicode编码中,且所述待显示字符的字号也在预先存储的字号范围内,则通过GDI绘制字符图形,并显示所述待显示字符。4.根据权利要求1至3任意一项所述的方法,其特征在于,所述方法在获取待显示字符的编码信息之前或者之后,还包括: 预先存储常用字符的Unicode编码以及常用字符的轮廓信息。5.根据权利要求1至3任意一项所述的方法,其特征在于,所述方法还包括: 预先存储字库的宽度信息。6.一种显示字符的装置,其特征在于,所述装置包括: 获取模块,用于获取待显示字符的编码信息,所述编码信息包括Unicode编码; 确定模块,用于根据所述编码信息确定所述待显示字符是否在预先存储的编码信息中; 显示模块,用于若是,则直接从预先存储的编码信息中获取所述待显示字符的轮廓信息,根据所述轮廓信息绘制字符图形并显示所述待显示字符。7.根据权利要求6所述的装置,其特征在于,所述确定模块,包括: 确定单元,用于根据所述待显示字符的Unicode编码,确定所述待显示字符的Unicode编码是否在预先存储的Unicode编码中,且所述待显示字符的字号是否在预先存储的字号范围内。8.根据权利要求6所述的装置,其特征在于,所述显示模块,包括: 显示单元,用于若确定所述待显示字符的Unicode编码在预先存储的Unicode编码中,且所述待显示字符的字号也在预先存储的字号范围内,则通过GDI绘制字符图形,并显示所述待显示字符。9.根据权利要求6至8任意一项所述的装置,其特征在于,所述装置还包括: 第一存储模块,用于预先存储常用字符的Unicode编码以及常用字符的轮廓信息。10.根据权利要求6至8任意一项所述的装置,其特征在于,所述方法还包括: 第二存储模块,用于预先存储字库的宽度信息。
【专利摘要】本发明实施例公开了一种显示字符的方法及装置,通过获取待显示字符的编码信息,所述编码信息包括Unicode编码;根据所述编码信息确定所述待显示字符是否在预先存储的编码信息中;若是,则直接从预先存储的编码信息中获取所述待显示字符的轮廓信息,根据所述轮廓信息绘制字符图形并显示所述待显示字符,从而全面提高矢量字体的显示速度,有效提高系统运行速度,提高用户体验;并能节省系统资源,有效省电,提供更长的续航能力。
【IPC分类】G09G5/22
【公开号】CN105047181
【申请号】CN201510473668
【发明人】邓瑞军
【申请人】广东小天才科技有限公司
【公开日】2015年11月11日
【申请日】2015年8月5日