一种基于网络请求的矢量文字生成方法

文档序号:6592645阅读:147来源:国知局
专利名称:一种基于网络请求的矢量文字生成方法
技术领域
本发明涉及一种文字生成方法,更具体地说,涉及一种基于网络请求的矢量文字生成方法。
背景技术
传统的文字生成方法中,用户可选择的字体部是基于系统内置的字体,这些本地的字体不仅数量有限而且文字样式也比较简单。这就无法满足用户对字体多样性和个性化的需求,如果用户想要使用自己喜欢的字体,他必须先去获得下载许可,然后将该字体文件下载到本地进行安装才能使用。而且现有的字库添加方法,操作上虽然也算方便,但系统对字体添加操作的响应时间、系统内部更新等操作复杂繁琐,虽然系统能自动完成,但需要等待较长的时间。如果需要将己经更新的个性字库在另一台计算机上进行实现,用户在操作上就显得比较复杂。对于普通用户来说,把字库文件从系统文件中提取出来,并保证能在另一台计算机上使用,并不是人人都可以办得到了。如果不能简单地实现字库从一台计算机转移到另一台计算机,很大程度上限制了资源共享性。

发明内容
本发明的目的在于克服现有技术的不足,提供一种通过网络交互方式来使用网络服务端的字库技术的基于网络请求的矢量文字生成方法。本发明的技术方案如下:一种基于网络请求的矢量文字生成方法,步骤如下:I)生成指定字体的矢量数据,保存于网络服务端;2)客户端下载用于生成指定字体的字符矢量数据;3)在客户端本地利用步骤2)的字符矢量数据对待渲染文字进行字体渲染,生成指定字体。作为优选,步骤I)中,生成指定字体的字符矢量数据的步骤如下:1.1)初始化字体渲染环境;1.2)选择欲生成的目标字体和字号大小;1.3)创建字库文件,初始化当前索引位置值;1.4)选择源标准字符集字符;1.5)使用渲染环境,渲染所选字符,并获取其字符矢量数据;1.6)将所得字符矢量数据存入字库文件当前索引位置下;1.7)更新字库文件当前索引位置值;1.8)重复步骤1.4)到步骤1.7),直至源标准字符集字符中所有字符渲染、存储完毕;1.9)关闭字库文件;
作为优选,所述的字符矢量数据包括矢量点总数、点集数据、每个矢量点类型、矢
量高、矢量宽。作为优选,字符矢量数据通过索引位置值的方式依次存放在字库文件中,具体实现如下:1.6.1)确定当前字符矢量数据在字库中存放的起始索引位置值、矢量点总数、矢
量宽、矢量高;1.6.2)存放当前字符的点集数据,以及点集数据中每个矢量点的类型;1.6.3)循环步骤1.6.1)、步骤1.6.2),直至所有字符存储完成。作为优选,字符矢量数据通过索引位置值的方式依次存放在字库文件中,以伪代码形式体现为:For (int i = O; i〈字符总数;i++)字符i在字库文件中的起始索引位置index字符i的矢量点总数Ien字符i的矢量宽w字符i的矢量高h字符i的矢量点(X,y)集合字符i矢量点类型(PointType)集合。作为优选,网络服务端中还保存有字体名称集合,为字体名称和其对应的字库文件的映射表,通过字体名称与字库文件的对应关系,确定指定字体对应的字库文件。作为优选,步骤3)具体为:3.1)初始化字体渲染环境;3.2)获取网络服务端的字体名称集合;3.3)选择指定字体,通过映射关系查找到对应的字库文件;3.4)输入字符,计算该字符在字库文件中的索引位置值;3.5)向网络服务端请求字库文件中对应索引位置的字符矢量数据;3.6)利用字体渲染环境,渲染获取到的字符矢量数据,输出矢量文字;3.7)重复步骤3.4)到步骤3.6)直到所有字符生成完成。作为优选,网络服务端保存的字库文件对应有字库配置文件,所述的字库配置文件格式如下:标记符,以此标记符判断是否为字库的配置文件;字体名称,生成该字库文件所使用的字体名称;字号,生存该字库文件所使用的字号大小;字符总数,该字库中所含字符的总数。作为优选,字库文件更新后,保存至网络服务端,供客户端使用。作为优选,网络服务端中保存的字库文件的文件名的命名规则为:"前缀+表示字体与字号的字符串+.后缀"。本发明的有益效果如下:本发明所述的方法,通过事先生成文字在特定字体下的字符矢量数据,然后将字符矢量数据保存在网络服务端,当第三方客户端需要生成该字体下的文字时只需请求相应字符矢量数据即可。其本质在于,文字的生成不再在本地进行,而是通过问网络服务端请求来获取其字符矢量数据,然后在本地渲染出来。通过本发明所述的方法,本地客户端不再受限于其有限的可选字体以及单一的效果,可以在任意时候向网络服务端补充某个个性化的字体库,而本地客户端无需任何改动即可使用新增的字体。利用网络服务端的优势可以非常方便的管理和访问所能使用的字体,字体种类不再受到限制,用户无需安装该字体,极大的满足了用户的需求及使用的方便性。
具体实施例方式以下结合实施例对本发明进行进一步的详细说明。一种基于网络请求的矢量文字生成方法,步骤如下:I)生成指定字体的矢量数据,保存于网络服务端;2)客户端下载用于生成指定字体的字符矢量数据;如果字库文件存在更新,字库文件更新后,保存至网络服务端,供客户端使用;3)在客户端本地利用步骤2)的字符矢量数据对待渲染文字进行字体渲染,生成指定字体。步骤I)中,生成指定字体的字符矢量数据的步骤如下:1.1)初始化字体渲染环境;1.2)选择欲生成的目标字体和字号大小;1.3)创建字库文件,初始化当前索引位置值;1.4)选择源标准字符集字符;1.5)使用渲染环境,渲染所选字符,并获取其字符矢量数据,所述的字符矢量数据包括矢量点总数、点集数据、每个矢量点类型、矢量高、矢量宽;1.6)将所得字符矢量数据存入字库文件当前索引位置下;1.7)更新字库文件当前索引位置值;1.8)重复步骤1.4)到步骤1.7),直至源标准字符集字符中所有字符渲染、存储完毕;1.9)关闭字库文件;字符矢量数据通过索引位置值的方式依次存放在字库文件中,具体实现如下:1.6.1)确定当前字符矢量数据在字库中存放的起始索引位置值、矢量点总数、矢
量宽、矢量高;1.6.2)存放当前字符的点集数据,以及点集数据中每个矢量点的类型;1.6.3)循环步骤1.6.1)、步骤1.6.2),直至所有字符存储完成。字符矢量数据通过索引位置值的方式依次存放在字库文件中,以伪代码形式体现为:For(int i = O; i〈字符总数;i++)字符i在字库文件中的起始索引位置index字符i的矢量点总数Ien字符i的矢量宽w字符i的矢量高h
字符i的矢量点(X,y)集合字符i矢量点类型(PointType)集合。网络服务端中还保存有字体名称集合,为字体名称和其对应的字库文件的映射表,通过字体名称与字库文件的对应关系,确定指定字体对应的字库文件。网络服务端中保存的字库文件的文件名的命名规则为:"前缀+表示字体与字号的字符串+.后缀"。步骤3)具体为:3.1)初始化字体渲染环境;3.2)获取网络服务端的字体名称集合;3.3)选择指定字体,通过映射关系查找到对应的字库文件;3.4)输入字符,计算该字符在字库文件中的索引位置值;3.5)向网络服务端请求字库文件中对应索引位置的字符矢量数据;3.6)利用字体渲染环境,渲染获取到的字符矢量数据,输出矢量文字;3.7)重复步骤3.4)到步骤3.6)直到所有字符生成完成。网络服务端保存的字库文件对应有字库配置文件,所述的字库配置文件格式如下:标记符,以此标记符判断是否为字库的配置文件;字体名称,生成该字库文件所使用的字体名称;字号,生存该字库文件所使用的字号大小;字符总数,该字库中所含字符的总数。实施例以.fox字库文件为例,对本发明进一步进行说明。本发明所述的方法基于三个模块:网络字库生成模块、网络服务端、客户端。网络字库生成模块,主要用来生成本地字体对应的fox字库文件,补充网络服务端字库。当要将某个本地字体存放到网络服务端供下载使用时,先用网络字库生成模块生成字体对应的fox字库文件,然后将该fox字库文件存入网络服务端以供使用。其步骤如下:(I)初始化gdi++等字体渲染环境;(2)选择要使用的本地字体和字号大小(本实施例中采用26号字);(3)创建fox文件,初始化当前索引位置值;(4)选择要生成的源标准字符集字符(如,GBK汉字)(5)使用渲染环境,渲染所选字符,并获取其矢量点总数、点集数据、每个矢量点类型、矢量高、矢量宽;(6)将所得字符矢量数据存入fox文件当前索引位置下;(7)更新fox文件当前索引位置值;(8)重复步骤4)到步骤7)直至标准字符集中所有字符都渲染和存储完毕;(9)关闭fox文件,至此fox字库文件中己经包含用所选字体渲染的整个标准字符集的矢量文字。为了方便客户端使用,可将fox字库文件更新到网络服务端,可以是实时更新。
为了知道网络服务端有多少个可供选择的字库,还需将字体名称更新到网络服务端的字体名称集合中。本实施例中,fox文件的命名规则如下:前缀+三个O或I组成的字符串+.fox后缀。中间部分的字符串依次表示是否粗体、斜体、下划线(I是,O否)。例如,宋体、常规对应的fox文件名称:songti000.fox;宋体、粗体对应的fox文件名称:songtil00.fox。网络服务端主要用来存储fox字库文件,并响应客户端请求下载。网络服务端保存有字体名称集合、fox文件集合。字体名称集合为字体名称和其对应fox文件前缀的映射表,用户可通过其对应关系,确定某个字体对应的fox文件。例如,宋体在名称集合中的存储方式如下:〈Item〉〈前缀〉songti〈/前缀〉〈名称〉宋体〈/名称〉〈/item〉客户端,用户通过客户端可使用网络服务端提供的字体,其步骤如下:(A)初始化gdi++等字体渲染环境;(B)获取网络服务端的网络字体名称集合;(C)选择其中的某个字体,通过映射关系获取对应的fox文件前缀,并进一步组成网络服务端中存放的fox文件名;(D)输入字符,计算该字符在fox文件中的索引位置值;(E)向网络服务端请求fox文件中对应索引位置的字符矢量数据;(F)利用字体渲染环境,渲染获取到的字符矢量数据,输出矢量文字;(G)重复步骤(D)到步骤(F)直到所有字符生成完成。由于字库中存放的是字符的矢量数据,因此渲染出的矢量文字可以随意放缩而不失真。

网络服务端保存的字库文件对应有字库配置文件,所述的字库配置文件格式如下:标记符+字体名称+字号+字符总数。本实施例中,其具体实施方式
如下:0x00位到0x03位为F0XT,以此标记符判断是否为字库的配置文件;0x04位到0x23位为生成该字库文件所使用的字体名称;0x24位到0x25位为生成fox字库时的字号大小;0x26位到0x29位为字库中所含字符的总数。字符的矢量数据通过索引位置值的方式依次存放在字库文件中,具体实现如下:a、确定当前字符矢量数据在字库中存放的起始索引位置值,以及该字符矢量点总数、字符的矢量宽、字符的矢量高;b、存放当前字符的矢量点集数据,以及对应每个矢量点的类型;c、循环步骤a、步骤b,直至所有字符存储完成。本实施例中,具体实现以伪代码形式体现为:For(int i = 0; i〈字符总数;i++)字符i在fox文件中的起始索引位置index 4字节字符i的矢量点总数Ien2字节
字符i的矢量宽w2字节字符i的矢量高h2字节字符i的矢量点(X, y)集合len*4字节字符i矢量点类型(Point Tyte)集合 Ien字节上述实施例仅是用来说明本发明,而并非用作对本发明的限定。只要是依据本发明的技术实质,对上述实施 例进行变化、变型等都将落在本发明的权利要求的范围内。
权利要求
1.一种基于网络请求的矢量文字生成方法,其特征在于,步骤如下: 1)生成指定字体的矢量数据,保存于网络服务端; 2)客户端下载用于生成指定字体的字符矢量数据; 3)在客户端本地利用步骤2)的字符矢量数据对待渲染文字进行字体渲染,生成指定字体。
2.根据权利要求1所述的基于网络请求的矢量文字生成方法,其特征在于,步骤I)中,生成指定字体的字符矢量数据的步骤如下: 1.1)初始化字体渲染环境; 1.2)选择欲生成的目标字体和字号大小; 1.3)创建字库文件,初始化当前索引位置值; 1.4)选择源标准字符集字 符; 1.5)使用渲染环境,渲染所选字符,并获取其字符矢量数据; 1.6)将所得字符矢量数据存入字库文件当前索引位置下; 1.7)更新字库文件当前索引位置值; 1.8)重复步骤1.4)到步骤1.7),直至源标准字符集字符中所有字符渲染、存储完毕; 1.9)关闭字库文件。
3.根据权利要求2所述的基于网络请求的矢量文字生成方法,其特征在于,所述的字符矢量数据包括矢量点总数、点集数据、每个矢量点类型、矢量高、矢量宽。
4.根据权利要求3所述的基于网络请求的矢量文字生成方法,其特征在于,字符矢量数据通过索引位置值的方式依次存放在字库文件中,具体实现如下: 1.6.1)确定当前字符矢量数据在字库中存放的起始索引位置值、矢量点总数、矢量宽、矢量高; 1.6.2)存放当前字符的点集数据,以及点集数据中每个矢量点的类型; 1.6.3)循环步骤1.6.1)、步骤1.6.2),直至所有字符存储完成。
5.根据权利要求4所述的基于网络请求的矢量文字生成方法,其特征在于,字符矢量数据通过索引位置值的方式依次存放在字库文件中,以伪代码形式体现为: For (int i = O; i< 字符总数;i++) 字符i在字库文件中的起始索引位置index 字符i的矢量点总数Ien 字符i的矢量宽w 字符i的矢量高h 字符i的矢量点U,y)集合 字符i矢量点类型(PointType)集合。
6.根据权利要求1所述的基于网络请求的矢量文字生成方法,其特征在于,网络服务端中还保存有字体名称集合,为字体名称和其对应的字库文件的映射表,通过字体名称与字库文件的对应关系,确定指定字体对应的字库文件。
7.根据权利要求6所述的基于网络请求的矢量文字生成方法,其特征在于,步骤3)具体为: .3.1)初始化字体渲染环境;.3.2)获取网络服务端的字体名称集合; .3.3)选择指定字体,通过映射关系查找到对应的字库文件; .3.4)输入字符,计算该字符在字库文件中的索引位置值; .3.5)向网络服务端请求字库文件中对应索引位置的字符矢量数据; .3.6)利用字体渲染环境,渲染获取到的字符矢量数据,输出矢量文字; .3.7)重复步骤3.4)到步骤3.6)直到所有字符生成完成。
8.根据权利要求1所述的基于网络请求的矢量文字生成方法,其特征在于,网络服务端保存的字库文件对应有字库配置文件,所述的字库配置文件格式如下: 标记符,以此标记符判断是否为字库的配置文件; 字体名称,生成该字库文件所使用的字体名称; 字号,生存该字库文件所使用的字号大小; 字符总数,该字库中所含字符的总数。
9.根据权利要求1所述的基于网络请求的矢量文字生成方法,其特征在于,字库文件更新后,保存至网络服务端,供客户端使用。
10.根据权利要求1所述的基于网络请求的矢量文字生成方法,其特征在于,网络服务端中保存的字库文件的文 件名的命名规则为前缀+表示字体与字号的字符串+.后缀"。
全文摘要
本发明涉及一种基于网络请求的矢量文字生成方法,步骤如下:1)生成指定字体的矢量数据,保存于网络服务端;2)客户端下载用于生成指定字体的字符矢量数据;3)在客户端本地利用步骤2)的字符矢量数据对待渲染文字进行字体渲染,生成指定字体。本发明所述的方法,文字的生成不再在本地进行,而是通过向网络服务端请求来获取其字符矢量数据,然后在本地渲染出来。本地客户端可以在任意时候向网络服务端补充某个个性化的字体库,而本地客户端无需任何改动即可使用新增的字体。利用网络服务端的优势可以非常方便的管理和访问所能使用的字体,字体种类不再受到限制。用户无需安装该字体,极大的满足了用户的需求及使用的方便性。
文档编号G06F17/30GK103207911SQ20131012049
公开日2013年7月17日 申请日期2013年4月8日 优先权日2013年4月8日
发明者张伟, 张长定 申请人:厦门美图网科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1