亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種基于網(wǎng)絡(luò)請求的矢量文字生成方法

文檔序號:6592645閱讀:192來源:國知局
專利名稱:一種基于網(wǎng)絡(luò)請求的矢量文字生成方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種文字生成方法,更具體地說,涉及一種基于網(wǎng)絡(luò)請求的矢量文字生成方法。
背景技術(shù)
傳統(tǒng)的文字生成方法中,用戶可選擇的字體部是基于系統(tǒng)內(nèi)置的字體,這些本地的字體不僅數(shù)量有限而且文字樣式也比較簡單。這就無法滿足用戶對字體多樣性和個性化的需求,如果用戶想要使用自己喜歡的字體,他必須先去獲得下載許可,然后將該字體文件下載到本地進行安裝才能使用。而且現(xiàn)有的字庫添加方法,操作上雖然也算方便,但系統(tǒng)對字體添加操作的響應(yīng)時間、系統(tǒng)內(nèi)部更新等操作復(fù)雜繁瑣,雖然系統(tǒng)能自動完成,但需要等待較長的時間。如果需要將己經(jīng)更新的個性字庫在另一臺計算機上進行實現(xiàn),用戶在操作上就顯得比較復(fù)雜。對于普通用戶來說,把字庫文件從系統(tǒng)文件中提取出來,并保證能在另一臺計算機上使用,并不是人人都可以辦得到了。如果不能簡單地實現(xiàn)字庫從一臺計算機轉(zhuǎn)移到另一臺計算機,很大程度上限制了資源共享性。

發(fā)明內(nèi)容
本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,提供一種通過網(wǎng)絡(luò)交互方式來使用網(wǎng)絡(luò)服務(wù)端的字庫技術(shù)的基于網(wǎng)絡(luò)請求的矢量文字生成方法。本發(fā)明的技術(shù)方案如下:一種基于網(wǎng)絡(luò)請求的矢量文字生成方法,步驟如下:I)生成指定字體的矢量數(shù)據(jù),保存于網(wǎng)絡(luò)服務(wù)端;2)客戶端下載用于生成指定字體的字符矢量數(shù)據(jù);3)在客戶端本地利用步驟2)的字符矢量數(shù)據(jù)對待渲染文字進行字體渲染,生成指定字體。作為優(yōu)選,步驟I)中,生成指定字體的字符矢量數(shù)據(jù)的步驟如下:1.1)初始化字體渲染環(huán)境;1.2)選擇欲生成的目標字體和字號大??;1.3)創(chuàng)建字庫文件,初始化當前索引位置值;1.4)選擇源標準字符集字符;1.5)使用渲染環(huán)境,渲染所選字符,并獲取其字符矢量數(shù)據(jù);1.6)將所得字符矢量數(shù)據(jù)存入字庫文件當前索引位置下;1.7)更新字庫文件當前索引位置值;1.8)重復(fù)步驟1.4)到步驟1.7),直至源標準字符集字符中所有字符渲染、存儲完畢;1.9)關(guān)閉字庫文件;
作為優(yōu)選,所述的字符矢量數(shù)據(jù)包括矢量點總數(shù)、點集數(shù)據(jù)、每個矢量點類型、矢
量高、矢量寬。作為優(yōu)選,字符矢量數(shù)據(jù)通過索引位置值的方式依次存放在字庫文件中,具體實現(xiàn)如下:1.6.1)確定當前字符矢量數(shù)據(jù)在字庫中存放的起始索引位置值、矢量點總數(shù)、矢
量寬、矢量高;1.6.2)存放當前字符的點集數(shù)據(jù),以及點集數(shù)據(jù)中每個矢量點的類型;1.6.3)循環(huán)步驟1.6.1)、步驟1.6.2),直至所有字符存儲完成。作為優(yōu)選,字符矢量數(shù)據(jù)通過索引位置值的方式依次存放在字庫文件中,以偽代碼形式體現(xiàn)為:For (int i = O; i〈字符總數(shù);i++)字符i在字庫文件中的起始索引位置index字符i的矢量點總數(shù)Ien字符i的矢量寬w字符i的矢量高h字符i的矢量點(X,y)集合字符i矢量點類型(PointType)集合。作為優(yōu)選,網(wǎng)絡(luò)服務(wù)端中還保存有字體名稱集合,為字體名稱和其對應(yīng)的字庫文件的映射表,通過字體名稱與字庫文件的對應(yīng)關(guān)系,確定指定字體對應(yīng)的字庫文件。作為優(yōu)選,步驟3)具體為:3.1)初始化字體渲染環(huán)境;3.2)獲取網(wǎng)絡(luò)服務(wù)端的字體名稱集合;3.3)選擇指定字體,通過映射關(guān)系查找到對應(yīng)的字庫文件;3.4)輸入字符,計算該字符在字庫文件中的索引位置值;3.5)向網(wǎng)絡(luò)服務(wù)端請求字庫文件中對應(yīng)索引位置的字符矢量數(shù)據(jù);3.6)利用字體渲染環(huán)境,渲染獲取到的字符矢量數(shù)據(jù),輸出矢量文字;3.7)重復(fù)步驟3.4)到步驟3.6)直到所有字符生成完成。作為優(yōu)選,網(wǎng)絡(luò)服務(wù)端保存的字庫文件對應(yīng)有字庫配置文件,所述的字庫配置文件格式如下:標記符,以此標記符判斷是否為字庫的配置文件;字體名稱,生成該字庫文件所使用的字體名稱;字號,生存該字庫文件所使用的字號大?。蛔址倲?shù),該字庫中所含字符的總數(shù)。作為優(yōu)選,字庫文件更新后,保存至網(wǎng)絡(luò)服務(wù)端,供客戶端使用。作為優(yōu)選,網(wǎng)絡(luò)服務(wù)端中保存的字庫文件的文件名的命名規(guī)則為:"前綴+表示字體與字號的字符串+.后綴"。本發(fā)明的有益效果如下:本發(fā)明所述的方法,通過事先生成文字在特定字體下的字符矢量數(shù)據(jù),然后將字符矢量數(shù)據(jù)保存在網(wǎng)絡(luò)服務(wù)端,當?shù)谌娇蛻舳诵枰稍撟煮w下的文字時只需請求相應(yīng)字符矢量數(shù)據(jù)即可。其本質(zhì)在于,文字的生成不再在本地進行,而是通過問網(wǎng)絡(luò)服務(wù)端請求來獲取其字符矢量數(shù)據(jù),然后在本地渲染出來。通過本發(fā)明所述的方法,本地客戶端不再受限于其有限的可選字體以及單一的效果,可以在任意時候向網(wǎng)絡(luò)服務(wù)端補充某個個性化的字體庫,而本地客戶端無需任何改動即可使用新增的字體。利用網(wǎng)絡(luò)服務(wù)端的優(yōu)勢可以非常方便的管理和訪問所能使用的字體,字體種類不再受到限制,用戶無需安裝該字體,極大的滿足了用戶的需求及使用的方便性。
具體實施例方式以下結(jié)合實施例對本發(fā)明進行進一步的詳細說明。一種基于網(wǎng)絡(luò)請求的矢量文字生成方法,步驟如下:I)生成指定字體的矢量數(shù)據(jù),保存于網(wǎng)絡(luò)服務(wù)端;2)客戶端下載用于生成指定字體的字符矢量數(shù)據(jù);如果字庫文件存在更新,字庫文件更新后,保存至網(wǎng)絡(luò)服務(wù)端,供客戶端使用;3)在客戶端本地利用步驟2)的字符矢量數(shù)據(jù)對待渲染文字進行字體渲染,生成指定字體。步驟I)中,生成指定字體的字符矢量數(shù)據(jù)的步驟如下:1.1)初始化字體渲染環(huán)境;1.2)選擇欲生成的目標字體和字號大?。?.3)創(chuàng)建字庫文件,初始化當前索引位置值;1.4)選擇源標準字符集字符;1.5)使用渲染環(huán)境,渲染所選字符,并獲取其字符矢量數(shù)據(jù),所述的字符矢量數(shù)據(jù)包括矢量點總數(shù)、點集數(shù)據(jù)、每個矢量點類型、矢量高、矢量寬;1.6)將所得字符矢量數(shù)據(jù)存入字庫文件當前索引位置下;1.7)更新字庫文件當前索引位置值;1.8)重復(fù)步驟1.4)到步驟1.7),直至源標準字符集字符中所有字符渲染、存儲完畢;1.9)關(guān)閉字庫文件;字符矢量數(shù)據(jù)通過索引位置值的方式依次存放在字庫文件中,具體實現(xiàn)如下:1.6.1)確定當前字符矢量數(shù)據(jù)在字庫中存放的起始索引位置值、矢量點總數(shù)、矢
量寬、矢量高;1.6.2)存放當前字符的點集數(shù)據(jù),以及點集數(shù)據(jù)中每個矢量點的類型;1.6.3)循環(huán)步驟1.6.1)、步驟1.6.2),直至所有字符存儲完成。字符矢量數(shù)據(jù)通過索引位置值的方式依次存放在字庫文件中,以偽代碼形式體現(xiàn)為:For(int i = O; i〈字符總數(shù);i++)字符i在字庫文件中的起始索引位置index字符i的矢量點總數(shù)Ien字符i的矢量寬w字符i的矢量高h
字符i的矢量點(X,y)集合字符i矢量點類型(PointType)集合。網(wǎng)絡(luò)服務(wù)端中還保存有字體名稱集合,為字體名稱和其對應(yīng)的字庫文件的映射表,通過字體名稱與字庫文件的對應(yīng)關(guān)系,確定指定字體對應(yīng)的字庫文件。網(wǎng)絡(luò)服務(wù)端中保存的字庫文件的文件名的命名規(guī)則為:"前綴+表示字體與字號的字符串+.后綴"。步驟3)具體為:3.1)初始化字體渲染環(huán)境;3.2)獲取網(wǎng)絡(luò)服務(wù)端的字體名稱集合;3.3)選擇指定字體,通過映射關(guān)系查找到對應(yīng)的字庫文件;3.4)輸入字符,計算該字符在字庫文件中的索引位置值;3.5)向網(wǎng)絡(luò)服務(wù)端請求字庫文件中對應(yīng)索引位置的字符矢量數(shù)據(jù);3.6)利用字體渲染環(huán)境,渲染獲取到的字符矢量數(shù)據(jù),輸出矢量文字;3.7)重復(fù)步驟3.4)到步驟3.6)直到所有字符生成完成。網(wǎng)絡(luò)服務(wù)端保存的字庫文件對應(yīng)有字庫配置文件,所述的字庫配置文件格式如下:標記符,以此標記符判斷是否為字庫的配置文件;字體名稱,生成該字庫文件所使用的字體名稱;字號,生存該字庫文件所使用的字號大??;字符總數(shù),該字庫中所含字符的總數(shù)。實施例以.fox字庫文件為例,對本發(fā)明進一步進行說明。本發(fā)明所述的方法基于三個模塊:網(wǎng)絡(luò)字庫生成模塊、網(wǎng)絡(luò)服務(wù)端、客戶端。網(wǎng)絡(luò)字庫生成模塊,主要用來生成本地字體對應(yīng)的fox字庫文件,補充網(wǎng)絡(luò)服務(wù)端字庫。當要將某個本地字體存放到網(wǎng)絡(luò)服務(wù)端供下載使用時,先用網(wǎng)絡(luò)字庫生成模塊生成字體對應(yīng)的fox字庫文件,然后將該fox字庫文件存入網(wǎng)絡(luò)服務(wù)端以供使用。其步驟如下:(I)初始化gdi++等字體渲染環(huán)境;(2)選擇要使用的本地字體和字號大小(本實施例中采用26號字);(3)創(chuàng)建fox文件,初始化當前索引位置值;(4)選擇要生成的源標準字符集字符(如,GBK漢字)(5)使用渲染環(huán)境,渲染所選字符,并獲取其矢量點總數(shù)、點集數(shù)據(jù)、每個矢量點類型、矢量高、矢量寬;(6)將所得字符矢量數(shù)據(jù)存入fox文件當前索引位置下;(7)更新fox文件當前索引位置值;(8)重復(fù)步驟4)到步驟7)直至標準字符集中所有字符都渲染和存儲完畢;(9)關(guān)閉fox文件,至此fox字庫文件中己經(jīng)包含用所選字體渲染的整個標準字符集的矢量文字。為了方便客戶端使用,可將fox字庫文件更新到網(wǎng)絡(luò)服務(wù)端,可以是實時更新。
為了知道網(wǎng)絡(luò)服務(wù)端有多少個可供選擇的字庫,還需將字體名稱更新到網(wǎng)絡(luò)服務(wù)端的字體名稱集合中。本實施例中,fox文件的命名規(guī)則如下:前綴+三個O或I組成的字符串+.fox后綴。中間部分的字符串依次表示是否粗體、斜體、下劃線(I是,O否)。例如,宋體、常規(guī)對應(yīng)的fox文件名稱:songti000.fox;宋體、粗體對應(yīng)的fox文件名稱:songtil00.fox。網(wǎng)絡(luò)服務(wù)端主要用來存儲fox字庫文件,并響應(yīng)客戶端請求下載。網(wǎng)絡(luò)服務(wù)端保存有字體名稱集合、fox文件集合。字體名稱集合為字體名稱和其對應(yīng)fox文件前綴的映射表,用戶可通過其對應(yīng)關(guān)系,確定某個字體對應(yīng)的fox文件。例如,宋體在名稱集合中的存儲方式如下:〈Item〉〈前綴〉songti〈/前綴〉〈名稱〉宋體〈/名稱〉〈/item〉客戶端,用戶通過客戶端可使用網(wǎng)絡(luò)服務(wù)端提供的字體,其步驟如下:(A)初始化gdi++等字體渲染環(huán)境;(B)獲取網(wǎng)絡(luò)服務(wù)端的網(wǎng)絡(luò)字體名稱集合;(C)選擇其中的某個字體,通過映射關(guān)系獲取對應(yīng)的fox文件前綴,并進一步組成網(wǎng)絡(luò)服務(wù)端中存放的fox文件名;(D)輸入字符,計算該字符在fox文件中的索引位置值;(E)向網(wǎng)絡(luò)服務(wù)端請求fox文件中對應(yīng)索引位置的字符矢量數(shù)據(jù);(F)利用字體渲染環(huán)境,渲染獲取到的字符矢量數(shù)據(jù),輸出矢量文字;(G)重復(fù)步驟(D)到步驟(F)直到所有字符生成完成。由于字庫中存放的是字符的矢量數(shù)據(jù),因此渲染出的矢量文字可以隨意放縮而不失真。

網(wǎng)絡(luò)服務(wù)端保存的字庫文件對應(yīng)有字庫配置文件,所述的字庫配置文件格式如下:標記符+字體名稱+字號+字符總數(shù)。本實施例中,其具體實施方式
如下:0x00位到0x03位為F0XT,以此標記符判斷是否為字庫的配置文件;0x04位到0x23位為生成該字庫文件所使用的字體名稱;0x24位到0x25位為生成fox字庫時的字號大小;0x26位到0x29位為字庫中所含字符的總數(shù)。字符的矢量數(shù)據(jù)通過索引位置值的方式依次存放在字庫文件中,具體實現(xiàn)如下:a、確定當前字符矢量數(shù)據(jù)在字庫中存放的起始索引位置值,以及該字符矢量點總數(shù)、字符的矢量寬、字符的矢量高;b、存放當前字符的矢量點集數(shù)據(jù),以及對應(yīng)每個矢量點的類型;c、循環(huán)步驟a、步驟b,直至所有字符存儲完成。本實施例中,具體實現(xiàn)以偽代碼形式體現(xiàn)為:For(int i = 0; i〈字符總數(shù);i++)字符i在fox文件中的起始索引位置index 4字節(jié)字符i的矢量點總數(shù)Ien2字節(jié)
字符i的矢量寬w2字節(jié)字符i的矢量高h2字節(jié)字符i的矢量點(X, y)集合len*4字節(jié)字符i矢量點類型(Point Tyte)集合 Ien字節(jié)上述實施例僅是用來說明本發(fā)明,而并非用作對本發(fā)明的限定。只要是依據(jù)本發(fā)明的技術(shù)實質(zhì),對上述實施 例進行變化、變型等都將落在本發(fā)明的權(quán)利要求的范圍內(nèi)。
權(quán)利要求
1.一種基于網(wǎng)絡(luò)請求的矢量文字生成方法,其特征在于,步驟如下: 1)生成指定字體的矢量數(shù)據(jù),保存于網(wǎng)絡(luò)服務(wù)端; 2)客戶端下載用于生成指定字體的字符矢量數(shù)據(jù); 3)在客戶端本地利用步驟2)的字符矢量數(shù)據(jù)對待渲染文字進行字體渲染,生成指定字體。
2.根據(jù)權(quán)利要求1所述的基于網(wǎng)絡(luò)請求的矢量文字生成方法,其特征在于,步驟I)中,生成指定字體的字符矢量數(shù)據(jù)的步驟如下: 1.1)初始化字體渲染環(huán)境; 1.2)選擇欲生成的目標字體和字號大?。? 1.3)創(chuàng)建字庫文件,初始化當前索引位置值; 1.4)選擇源標準字符集字 符; 1.5)使用渲染環(huán)境,渲染所選字符,并獲取其字符矢量數(shù)據(jù); 1.6)將所得字符矢量數(shù)據(jù)存入字庫文件當前索引位置下; 1.7)更新字庫文件當前索引位置值; 1.8)重復(fù)步驟1.4)到步驟1.7),直至源標準字符集字符中所有字符渲染、存儲完畢; 1.9)關(guān)閉字庫文件。
3.根據(jù)權(quán)利要求2所述的基于網(wǎng)絡(luò)請求的矢量文字生成方法,其特征在于,所述的字符矢量數(shù)據(jù)包括矢量點總數(shù)、點集數(shù)據(jù)、每個矢量點類型、矢量高、矢量寬。
4.根據(jù)權(quán)利要求3所述的基于網(wǎng)絡(luò)請求的矢量文字生成方法,其特征在于,字符矢量數(shù)據(jù)通過索引位置值的方式依次存放在字庫文件中,具體實現(xiàn)如下: 1.6.1)確定當前字符矢量數(shù)據(jù)在字庫中存放的起始索引位置值、矢量點總數(shù)、矢量寬、矢量高; 1.6.2)存放當前字符的點集數(shù)據(jù),以及點集數(shù)據(jù)中每個矢量點的類型; 1.6.3)循環(huán)步驟1.6.1)、步驟1.6.2),直至所有字符存儲完成。
5.根據(jù)權(quán)利要求4所述的基于網(wǎng)絡(luò)請求的矢量文字生成方法,其特征在于,字符矢量數(shù)據(jù)通過索引位置值的方式依次存放在字庫文件中,以偽代碼形式體現(xiàn)為: For (int i = O; i< 字符總數(shù);i++) 字符i在字庫文件中的起始索引位置index 字符i的矢量點總數(shù)Ien 字符i的矢量寬w 字符i的矢量高h 字符i的矢量點U,y)集合 字符i矢量點類型(PointType)集合。
6.根據(jù)權(quán)利要求1所述的基于網(wǎng)絡(luò)請求的矢量文字生成方法,其特征在于,網(wǎng)絡(luò)服務(wù)端中還保存有字體名稱集合,為字體名稱和其對應(yīng)的字庫文件的映射表,通過字體名稱與字庫文件的對應(yīng)關(guān)系,確定指定字體對應(yīng)的字庫文件。
7.根據(jù)權(quán)利要求6所述的基于網(wǎng)絡(luò)請求的矢量文字生成方法,其特征在于,步驟3)具體為: .3.1)初始化字體渲染環(huán)境;.3.2)獲取網(wǎng)絡(luò)服務(wù)端的字體名稱集合; .3.3)選擇指定字體,通過映射關(guān)系查找到對應(yīng)的字庫文件; .3.4)輸入字符,計算該字符在字庫文件中的索引位置值; .3.5)向網(wǎng)絡(luò)服務(wù)端請求字庫文件中對應(yīng)索引位置的字符矢量數(shù)據(jù); .3.6)利用字體渲染環(huán)境,渲染獲取到的字符矢量數(shù)據(jù),輸出矢量文字; .3.7)重復(fù)步驟3.4)到步驟3.6)直到所有字符生成完成。
8.根據(jù)權(quán)利要求1所述的基于網(wǎng)絡(luò)請求的矢量文字生成方法,其特征在于,網(wǎng)絡(luò)服務(wù)端保存的字庫文件對應(yīng)有字庫配置文件,所述的字庫配置文件格式如下: 標記符,以此標記符判斷是否為字庫的配置文件; 字體名稱,生成該字庫文件所使用的字體名稱; 字號,生存該字庫文件所使用的字號大??; 字符總數(shù),該字庫中所含字符的總數(shù)。
9.根據(jù)權(quán)利要求1所述的基于網(wǎng)絡(luò)請求的矢量文字生成方法,其特征在于,字庫文件更新后,保存至網(wǎng)絡(luò)服務(wù)端,供客戶端使用。
10.根據(jù)權(quán)利要求1所述的基于網(wǎng)絡(luò)請求的矢量文字生成方法,其特征在于,網(wǎng)絡(luò)服務(wù)端中保存的字庫文件的文 件名的命名規(guī)則為前綴+表示字體與字號的字符串+.后綴"。
全文摘要
本發(fā)明涉及一種基于網(wǎng)絡(luò)請求的矢量文字生成方法,步驟如下:1)生成指定字體的矢量數(shù)據(jù),保存于網(wǎng)絡(luò)服務(wù)端;2)客戶端下載用于生成指定字體的字符矢量數(shù)據(jù);3)在客戶端本地利用步驟2)的字符矢量數(shù)據(jù)對待渲染文字進行字體渲染,生成指定字體。本發(fā)明所述的方法,文字的生成不再在本地進行,而是通過向網(wǎng)絡(luò)服務(wù)端請求來獲取其字符矢量數(shù)據(jù),然后在本地渲染出來。本地客戶端可以在任意時候向網(wǎng)絡(luò)服務(wù)端補充某個個性化的字體庫,而本地客戶端無需任何改動即可使用新增的字體。利用網(wǎng)絡(luò)服務(wù)端的優(yōu)勢可以非常方便的管理和訪問所能使用的字體,字體種類不再受到限制。用戶無需安裝該字體,極大的滿足了用戶的需求及使用的方便性。
文檔編號G06F17/30GK103207911SQ20131012049
公開日2013年7月17日 申請日期2013年4月8日 優(yōu)先權(quán)日2013年4月8日
發(fā)明者張偉, 張長定 申請人:廈門美圖網(wǎng)科技有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1