供用户自定义字体的方法

文档序号:6481446阅读:167来源:国知局

专利名称::供用户自定义字体的方法
技术领域
:本发明涉及一种供用户自定义字体的方法,尤其是一种让用户以字符图片打包成字体文件在嵌入式系统中使用的
技术领域

背景技术
:随着嵌入式装置(掌上型数字助理机)的存储容量越来越大,用户对嵌入式装置的功能也越来越多。其中,嵌入式装置个人化便是其中一项受重视的功能。许多用户喜欢用可以代表其个性的特殊字体,虽然嵌入式装置上有很多种字型字体可供用户下载,但仍不够满足一些用户对更个性化字体的的需求,如亲笔字体等。在
背景技术
中,嵌入式装置可以通过制定特殊的脚本(script),逐个使用图片来显示一些字符(character),但图片的显示不具备字库显示的基本特点。显示这种图片的数据也需要再特别指定图片资源,而且这种传统的图片资源的显示手法需要大量的运算,对于性能限定的嵌入式装置不一定可以快速地使用图片来显示字符。因此,如何兼顾让用户在嵌入式装置上可自行定义字体有不会消耗过多资源是亟待解决的问题。
发明内容本发明为解决
背景技术
中存在的上述技术问题,而提出一种供用户自定义字体的方法。本发明的技术解决方案是本发明为一种供用户自定义字体的方法,其特殊之处在于该方法包含下列步骤1)提供字符图片;2)解析字符图片的文件名,取得字符图片所对应的字符码,并读取字符图片的文件数据;的索引;4)当用户选择使用字体时,根据欲显示的字符码,对字体文件的索引进行检索;当检索匹配时,从字体文件中取得对应欲显示字符码的字符图片并显示。上述步骤3)的具体步骤如下31)判断是否有指定的欲打包字符图片清单,若是,则进行步骤32),若否,则进行步骤33);32)解析字符图片的文件名,取得字符图片所对应的字符码,并读取字符图片的文件数据;33)判断是否有指定的合法目录或路径,若否,则回到步骤31),若是,则进行步骤34);34)扫描此合法目录内的文件产生欲打包字符图片清单,并进行步骤32);35)将字符图片打包成字体文件,以及将字符码及文件数据记录在字体文件的索引;36)判断此字体文件及其索引是否需压縮,若否,则进行步骤37),若是,则进行步骤38);37)输出此字体文件及其索引,接着结束此流程;38)选择压縮算法;39)对字体文件及其索引进行压縮,接着进行步骤37)。上述步骤4)的具体步骤如下41)进行字体应用程序接口函数,取得字体来显示;42)判断所操作的字体是否为下载字体,若是,则进行步骤43),若否,则进行步骤44)43)以最近最久未使用算法查询此字体是否己经加载到缓冲区中,若此字体已经加载到缓冲区中,则进行步骤45,若否,则进行步骤46);44)使用预设字体等等的备用方案,或是报告错误并以特定字符;45)取得缓冲区的数据节点,并调整LRU链表,进行步骤48);46)加载此字体的相关数据至缓冲区;47)判断是否加载成功,若是,则进行步骤45),若否,则进行步骤44);48)提供下载字体数据服务。上述字符图片的文件名包含字符码。上述步骤1)中还包括提供对照表,对照表记录字符图片的文件名与字符码的对应关系。上述步骤32)中,当字符图片的文件名包含字符码,则解析字符图片的文件名便可取得字符图片所对应的字符码,当字符图片的文件名不包含字符码,则进行需要记录字符图片的文件名与字符码的对应关系的对照表,并在此对照表中査询每个对应字符图片的字符码。上述该字符图片的文件数据包含字符图片的宽度高度以及档案偏移量。上述步骤3)中打包字体文件时,将字符图片所公用的调色板信息和字高信息储存在字体文件中。上述步骤3)中字体文件的索引以红黑树数据结构来记录。本发明可输入用户制作的图像资源作为字符图片,并以目录名区分字体类型,或以文件名对应上字符码,此举可降低使用者自定义字体的复杂度。本发明使用字体文件的索引及去除了很多冗余的信息,避免不必要过滤和解析处理。此外,字体类型可为单位在缓冲区集中管理,避免频繁的加载图像资源,可提高字体显示速度,特别是用于运算能力有限的嵌入式装置的用户字体的应用。此外,本发明所产生的字体文件可用于字体的统一接口函数(FONTAPI)进行操作,并不需要修改到使用字体显示应用层的程序,从而保证了已经发布出去的应用程序能够二进制兼容。图1为本发明方法的步骤流程图2为本发明显示示意图3为本发明方法产生字体文件及其索引的实施例步骤流程图;图4为本发明方法使用自定义字体的实施例步骤流程图。具体实施方式参见图1,供用户自定义字体的方法包含下列步骤步骤11,提供字符图片,例如表一所示的分别显示"体"、"字"、"我"、"的"、"A"、"B"、"C"及"D"的8张用户手写字符图片。相同类型的字符图片可储存于同一目录,且目录名称可包含这些字符图片的字体类型名称。表一<table>tableseeoriginaldocumentpage7</column></row><table>步骤12,解析字符图片的文件名,取得字符图片所对应的字符码,并读取字符图片的文件数据。文件数据包含字符图片的宽度高度以及档案偏移量(offset)。步骤13,将字符图片打包成字体文件,以及将字符码及文件数据记录于字体文件的索引。其中,字体文件的索引可以具备快速查找能力的数据结构来记录,例如红黑树数据结构(RedBlackTree),提高之后索引进行检索的速度。字符图片的文件名视需要可包含字符码,例如在表一中,"体"字符图片的文件名为ISN_0x4f53.bmp,"4f53"为"体"的字符码,"D"字符图片的文件名为ISN_68.bmp,"68"为"D"的字符码,可加快此字体文件的索引的产生。此夕卜,进行步骤12前,还包含提供对照表,对照表记录字符图片的文件名与字符码的对应关系,而进行步骤12,根据该对照表取得字符图片所对应的字符码。此外,步骤13,打包字体文件时,将字符图片所公用的调色板信息和字高信息储存在字体文件中。由此,可加速之后应用此字体文件时的检索速度。而字体文件产生后,也可对字体文件进行压縮,縮小其数据量。步骤14,当用户选择使用该字体时,根据欲显示的字符码,对字体文件的索引进行检索,并在步骤15判断检索是否匹配。其中,当字体文件的索引以红黑树数据结构(RedBlackTree)来记录时,则在步骤14可使用最近最久未使用算法(LeastRecentlyUsed,LRU),并搭配缓冲区来进行检索。当检索匹配时,在步骤16从字体文件中取得对应欲显示字符码的字符图片并显示,参见图2,第1行及第2行显示表一中的8个字体,而第3行为一般标准字体。参见图3,步骤31,判断是否有指定的欲打包字符图片清单,若是,则进行步骤32。若否,则在步骤33判断是否有指定的合法目录或路径,若否,则回到开始步骤,若是,则在步骤34扫描此合法目录内的文件产生欲打包字符图片清单,并进行步骤32。步骤32,解析字符图片的文件名,取得字符图片所对应的字符码,并读取字符图片的文件数据。其中,当字符图片的文件名包含字符码,则解析字符图片的文件名便可取得字符图片所对应的字符码。当字符图片的文件名不包含字符码,则步骤32进行需要记录字符图片的文件名与字符码的对应关系的对照表,并在此对照表中查询每个对应字符图片的字符码。步骤35,将字符图片打包成字体文件,以及将字符码及文件数据记录在字体文件的索引。字体文件的索引可使用具备快速査找能力的数据结构来记录,例如红黑树数据结构(RedBlackTree),提高之后此索引进行检索的速度。步骤36,判断此字体文件及其索引是否需压縮,若否,则进行步骤37输出此字体文件及其索引,接着结束此流程。若此字体文件及其索引需压縮,则在步骤38选择压縮算法,而在步骤39对字体文件及其索引进行压缩,接着进行步骤37。参见图4,步骤41,进行字体应用程序接口函数(FontAPI),取得字体来显示。此字体应用程序接口函数可为嵌入式系统中内建统一的接口函数,如表二所示的C或0++语言中的字型接口函数。由于通过本发明方法来制作的字体文件可使用字体的统一接口函数(FONTAPI)进行操作,并不需要修改到使用字体显示应用层的程序,从而保证了己经发布出去的应用程序能够二进制兼容(binarycompatible)。由此,可满足用户对字型的任意特殊的自定义要求,且在编辑和制作自定义过程也不再需要复杂的字体专业描述软件。表二与字型相关的接口函数1USHORTGetCharWidth(USHORTch,USHORTfonttype)2USHORTGetFontHeight(USHORTfonttype)3USHORTGetFon她trix(USHORTch,PUCHARbuffer,USHORTfonttype)4USHORTWriteChar(SHORTx,SHORTy,USHORTch,USHORToperate)步骤42,判断所操作的字体是否为下载字体,若是,则进行步骤43,若否,则进行步骤44使用预设字体等等的备用方案,或是报告错误并以特定字符,例如"?"替换显示等。若所操作的字体为下载字体,则在步骤43以最近最久未使用(LRU)算法査询此字体是否已经加载到缓冲区中。若此字体已经加载到缓冲区中,则进行步骤45,若否,则进行步骤46加载此字体的相关数据至缓冲区,并在步骤47判断是否加载成功,若是,则进行步骤45,若否,则进行步骤44。在步骤45取得缓冲区的数据节点,并调整LRU链表,接着在步骤48提供下载字体数据服务,显示出图2所示的画面。通过上述实施例,可说明本发明可输入用户制作的图像资源作为字符图片,并以目录名区分字体类型,或以文件名对应上字符码,此举可降低使用者自定义字体的复杂度。本发明使用字体文件的索引及去除了很多冗余的信息,避免不必要过滤和解析处理。此外,字体类型可为单位在缓冲区集中管理,避免频繁的加载图像资源,可提高字体显示速度,特别是用于运算能力有限的嵌入式装置的用户字体的应用。此外,本发明所产生的字体文件可用于字体的统一接口函数(FONTAPI)进行操作,并不需要修改到使用字体显示应用层的程序,从而保证了已经发布出去的应用程序能够二进制兼容。权利要求1、一种供用户自定义字体的方法,其特征在于该方法包含下列步骤1)提供字符图片;2)解析字符图片的文件名,取得字符图片所对应的字符码,并读取字符图片的文件数据;3)将字符图片打包成字体文件,以及将字符码及文件数据记录于字体文件的索引;4)当用户选择使用字体时,根据欲显示的字符码,对字体文件的索引进行检索;当检索匹配时,从字体文件中取得对应欲显示字符码的字符图片并显示。2、根据权利要求l所述的一种供用户自定义字体的方法,其特征在于所述步骤3)的具体步骤如下31)判断是否有指定的欲打包字符图片清单,若是,则进行步骤32),若否,则进行步骤33);32)解析字符图片的文件名,取得字符图片所对应的字符码,并读取字符图片的文件数据;33)判断是否有指定的合法目录或路径,若否,则回到步骤31),若是,则进行步骤34);34)扫描此合法目录内的文件产生欲打包字符图片清单,并进行步骤32);35)将字符图片打包成字体文件,以及将字符码及文件数据记录在字体文件的索引;36)判断此字体文件及其索引是否需压縮,若否,则进行步骤37),若是,则进行步骤38);37)输出此字体文件及其索引,接着结束此流程;38)选择压縮算法;39)对字体文件及其索引进行压縮,接着进行步骤37)。3、根据权利要求2所述的一种供用户自定义字体的方法,其特征在于所述步骤4)的具体步骤如下41)进行字体应用程序接口函数,取得字体来显示;42)判断所操作的字体是否为下载字体,若是,则进行步骤43),若否,则进行步骤44)43)以最近最久未使用算法査询此字体是否己经加载到缓冲区中,若此字体己经加载到缓冲区中,则进行步骤45,若否,则进行步骤46);44)使用预设字体等等的备用方案,或是报告错误并以特定字符;45)取得缓冲区的数据节点,并调整LRU链表,进行步骤48);46)加载此字体的相关数据至缓冲区;47)判断是否加载成功,若是,则进行步骤45),若否,则进行步骤44);48)提供下载字体数据服务。4、根据权利要求2或3所述的一种供用户自定义字体的方法,其特征在于:所述字符图片的文件名包含字符码。5、根据权利要求4所述的一种供用户自定义字体的方法,其特征在于所述步骤l)中还包括提供对照表,对照表记录字符图片的文件名与字符码的对应关系。6、根据权利要求5所述的一种供用户自定义字体的方法,其特征在于所述步骤32)中,当字符图片的文件名包含字符码,则解析字符图片的文件名便可取得字符图片所对应的字符码,当字符图片的文件名不包含字符码,则进行需要记录字符图片的文件名与字符码的对应关系的对照表,并在此对照表中查询每个对应字符图片的字符码。7、根据权利要求l所述的一种供用户自定义字体的方法,其特征在于所述该字符图片的文件数据包含字符图片的宽度高度以及档案偏移量。8、根据权利要求l所述的一种供用户自定义字体的方法,其特征在于所述步骤3)中打包字体文件时,将字符图片所公用的调色板信息和字高信息储存在字体文件中。9、根据权利要求l所述的一种供用户自定义字体的方法,其特征在于所述步骤3)中字体文件的索引以红黑树数据结构来记录。全文摘要本发明是一种供用户自定义字体的方法,适用于内嵌式系统,该方法包含下列步骤1)提供字符图片;2)解析字符图片的文件名,取得字符图片所对应的字符码,并读取字符图片的文件数据;3)将字符图片打包成字体文件,以及将字符码及文件数据记录于字体文件的索引;4)当用户选择使用字体时,根据欲显示的字符码,对字体文件的索引进行检索;当检索匹配时,从字体文件中取得对应欲显示字符码的字符图片并显示。本发明可降低使用者自定义字体的复杂度,去除了很多冗余的信息,避免不必要过滤和解析处理,避免频繁的加载图像资源,可提高字体显示速度。文档编号G06F17/30GK101639846SQ200910023659公开日2010年2月3日申请日期2009年8月20日优先权日2009年8月20日发明者刚刘,辉钟,陈淮琰申请人:无敌科技(西安)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1