欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

字庫的制作方法和裝置的制作方法

文檔序號:6370863閱讀:392來源:國知局
專利名稱:字庫的制作方法和裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及嵌入式技術(shù)領(lǐng)域,尤其涉及一種字庫的制作方法和裝置。
背景技術(shù)
目前嵌入式設(shè)備應(yīng)用十分廣泛,由于嵌入式系統(tǒng)在運算速度、存儲空間等方面通常有很大的限制。若要在嵌入式設(shè)備上顯示文字,尤其是需要顯示多種語言文字,單單移植個人計算機(Personal Computer,PC)上的字體字庫是難以滿足的。因此,集成多種語言字庫并減少該字庫所占用的存儲空間,從而提高嵌入式系統(tǒng)的顯示效率,成為了目前嵌入式系統(tǒng)需要解決的重要問題。在現(xiàn)有技術(shù)中,嵌入式設(shè)備字體顯示方面使用較多的是點陣字庫。嵌入式設(shè)備中所支持的點陣字庫的制作方法主要分有三種第一,將一種語言單獨做成一個單一字庫; 第二,統(tǒng)計出會用到的所有字符做成特定字庫;第三,利用統(tǒng)一碼Unicode統(tǒng)一編碼為索引字庫。該統(tǒng)一碼是一種在計算機上使用的字符編碼。它為每種語言中的每個字符設(shè)定了統(tǒng)一并且唯一的二進制編碼,以滿足跨語言、跨平臺進行文本轉(zhuǎn)換、處理的要求。因此,統(tǒng)一碼Unicode是可以容納世界上所有文字和符號的字符編碼方案。上述第一種字庫制作方式適合用于英文等獨立字符個體較少的語言,第二種字庫制作方式適合用于漢語等獨立字符個體較多的語言。前兩種方式都不適合對多語言的支持。第三種字庫制作方式適合對多語言字符的支持。當(dāng)多語言同時顯示時,則需要定制需要同時顯示的字符,并從多語言字庫中獲得所需要的字?!,F(xiàn)有技術(shù)中多語言字庫一般只支持一種字號的字體,但是根據(jù)實際需要,若想達到比較美觀的效果,則需要對不同的語言采用不同的字號,這是現(xiàn)有技術(shù)中無法實現(xiàn)的。另夕卜,多語言字庫中一般只存取整個字符寬和高的數(shù)據(jù),但是在需要多語言同時顯示時,只存取整個字符寬和高的數(shù)據(jù)會浪費了大量的存儲空間,同時也影響顯示速度。

發(fā)明內(nèi)容
本發(fā)明的目的是,提供一種字庫的制作方法和裝置。該制作方法和裝置能夠支持多種語言,可以自主定制所需字符并且不同字符支持不同字號,能夠大大減小了存儲空間并且滿足嵌入式系統(tǒng)的高效的查找和顯示的要求,同時該字庫的制備方法易于實現(xiàn)而且方便裁剪該字庫。為實現(xiàn)上述目的,本發(fā)明提供了一種字庫的制作方法,所述方法包括獲取所述制作所述字庫的所需語言的矢量字庫;將所述矢量字庫轉(zhuǎn)換為點陣字庫;利用所述所需語言的統(tǒng)一碼的編碼列表從所述點陣字庫中選取字符;根據(jù)所述字符獲取所述字符的第一字模數(shù)據(jù)和所述字符的第一屬性;根據(jù)所述統(tǒng)一碼的編碼列表、所述字符的第一字模數(shù)據(jù)和所述字符的第一屬性組成所述字庫。優(yōu)選地,所述利用所述所需語言的統(tǒng)一碼的編碼列表從所述點陣字庫中選取字符之前還包括挑選所述制作所述字庫的所需語言的統(tǒng)一碼并建立所述統(tǒng)一碼的編碼列表。
優(yōu)選地,所述根據(jù)所述字符獲取所述字符的第一字模數(shù)據(jù)和所述字符的第一屬性之后還包括將所述字符的所述第一字模數(shù)據(jù)進行裁剪,從而生成第二字模數(shù)據(jù);根據(jù)所述字符的第一屬性計算所述字符的所述第二字模數(shù)據(jù)的存儲值和基于所述第二字模數(shù)據(jù)的存儲值計算所述字符的第二屬性;根據(jù)所述統(tǒng)一碼的編碼列表、所述字符的第一屬性、所述字符的第二屬性和所述字符的第二字模數(shù)據(jù)組成所述字庫。進一步優(yōu)選地,所述制作所述字庫的所需語言的種類為兩種或兩種以上,并且所述制作的所述字庫為多語言字庫。進一步優(yōu)選地,所述制作所述多語言字庫的所需的多個所述點陣字庫之間具有不同的字符屬性。優(yōu)選地所述字符的第一字模數(shù)據(jù)和所述字符的第一屬性具體為所述字符的第一字模數(shù)據(jù)為所述字符的以行對齊方式存儲的實體數(shù)據(jù);所述字符的第一屬性包括所述字符整體的寬、高;所述字符實體的寬、高;所述字符實體相對于所述字符整體的水平方向、豎直方向的偏移值。 進一步優(yōu)選地,述將所述字符的所述第一字模數(shù)據(jù)進行裁剪,從而生成第二字模數(shù)據(jù)具體為對所述第一字模數(shù)據(jù)進行裁剪,去掉所述第一字模數(shù)據(jù)中的無效部分,保留所述第一字模數(shù)據(jù)中的有效部分,并進行整體對齊,當(dāng)所述第二字模數(shù)據(jù)結(jié)尾不足一個字節(jié),則補足一個字節(jié)。進一步優(yōu)選地,所述字符的第二字模數(shù)據(jù)的存儲值的計算公式為
sw X sh
U =-
8其中,D為所述字符的第二字模數(shù)據(jù)的存儲值,sw為所述字符實體的寬,sh為所述字符實體的高,I I為向上取整函數(shù)。進一步優(yōu)選地,所述字符的第二屬性為所述第二字模數(shù)據(jù)的偏移地址;所述第二字模數(shù)據(jù)的偏移地址為所述字符在第二字模數(shù)據(jù)庫中之前的所有的所述字符的第二字模數(shù)據(jù)的存儲值之和。本發(fā)明還提供了一種字庫的制作裝置,所述裝置包括第一獲取單元,用于獲取所述制作所述字庫的所需語言的矢量字庫;轉(zhuǎn)換單元,用于將所述矢量字庫轉(zhuǎn)換為點陣字庫;選取單元,用于利用所述所需語言的統(tǒng)一碼的編碼列表從所述點陣字庫中選取字符;第二獲取單元,用于根據(jù)所述字符獲取所述字符的第一字模數(shù)據(jù)和所述字符的第一屬性;第一組成單元,用于根據(jù)所述統(tǒng)一碼的編碼列表、所述字符的第一字模數(shù)據(jù)和所述字符的第一屬性組成所述字庫。優(yōu)選地,所述裝置還包括挑選單元,用于挑選所述制作所述字庫的所需語言的統(tǒng)一碼并建立所述統(tǒng)一碼的編碼列表。優(yōu)選地,所述裝置還包括生成單元,用于將所述字符的所述第一字模數(shù)據(jù)進行裁剪,從而生成第二字模數(shù)據(jù);計算單元,用于根據(jù)所述字符的第一屬性計算所述字符的所述第二字模數(shù)據(jù)的存儲值和基于所述第二字模數(shù)據(jù)的存儲值計算所述字符的第二屬性;第二組成單元,用于根據(jù)所述統(tǒng)一碼的編碼列表、所述字符的第一屬性、所述字符的第二屬性和所述字符的第二字模數(shù)據(jù)組成所述字庫。
通過應(yīng)用本發(fā)明公開的字庫的制作方法和裝置,挑選制作字庫的所需語言的統(tǒng)一碼并建立統(tǒng)一碼的編碼列表;獲取制作字庫的所需語言的矢量字庫再轉(zhuǎn)換為點陣字庫,利用編碼列表從點陣字庫中選取字符并獲取該字符的第一字模數(shù)據(jù)和第一屬性,根據(jù)該字符的第一字模數(shù)據(jù)和第一屬性組成字庫;或者,將字符的第一字模數(shù)據(jù)進行裁剪生成第二字模數(shù)據(jù),計算該字符存儲值D和和第二屬性,根據(jù)統(tǒng)一碼的編碼列表、字符的第一屬性、字符的第二屬性和字符的第二字模數(shù)據(jù)組成字庫,從而使得該字庫的制作方法和裝置易于實現(xiàn),同時僅僅更新編碼列表就可以很方便的裁剪字庫,從而使得該字庫可以支持不同語言和不同字號。


圖I為本發(fā)明實施例提供的字庫的制作方法的流程圖;圖2為本發(fā)明實施例提供的字符整體、字符實體顯示關(guān)系的示意圖;圖3為本發(fā)明實施例提供的字庫的結(jié)構(gòu)示意圖;圖4為本發(fā)明實施例提供所有字符的字符屬性列表的示意圖;圖5為本發(fā)明實施例提供的第二字模數(shù)據(jù)庫的示意圖;圖6為本發(fā)明實施例提供的字庫的制作裝置的示意圖。
具體實施例方式下面通過附圖和實施例,對本發(fā)明的技術(shù)方案做進一步的詳細描述。圖I為本發(fā)明實施例提供的字庫的制作方法的流程圖。如圖所示,本發(fā)明實施例具體包括以下步驟步驟101,獲取制作字庫的所需語g的矢量字庫。具體地,本發(fā)明實施例中制作的字庫為多語言字庫,故在制作字庫之前首先需要確定該字庫需要的語言種類,比如漢語、英語等。其中,該語言種類為兩種或兩種以上。然后在Windows系統(tǒng)下獲取所需語言的矢量字庫TrueType,比如獲取漢語的矢量字庫和英語的矢量字庫。其中,漢語的矢量字庫保存的是對每一個漢字的描述信息,比如一個筆劃的起始、終止坐標(biāo),半徑、弧度等等。其他語言的矢量字庫與漢語的矢量字庫類似。步驟102,將所需語言的矢量字庫轉(zhuǎn)換為點陣字庫。具體地,通過工具將所需語言的矢量字庫轉(zhuǎn)換為點陣字庫。比如,通過ttf2bdf 等工具將TrueType矢量字庫轉(zhuǎn)換為BDF點陣字庫文件。其中,漢語的點陣字庫是將每一個漢字都分成16 X 16或24 X 24個點,用每個點的虛實來表示漢字的輪廓;英文的點陣字庫將每個英文字母分成高度為24或16,寬度為可變的點數(shù),以此來適應(yīng)不同寬度的英文字符,用每個點的虛實來表示英文字母的輪廓。另外,其他語言的點陣字庫與英文的點陣字庫類似。步驟103,挑選制作字庫的所需語言的統(tǒng)一碼并建立統(tǒng)一碼的編碼列表。具體地,統(tǒng)一碼也叫萬國碼或單一碼,其中,該統(tǒng)一碼是一種在計算機上使用的字符編碼,其為每種語言中的每個字符設(shè)定了統(tǒng)一并且唯一的二進制編碼。根據(jù)國際組織制定的用數(shù)字O-OxlOFFFF來映射世界上所有文字和符號,最多可以容納1114112個字符,或者說有1114112個碼位,該碼位為分配給字符的數(shù)字。比如漢語中的“王”這個字符對應(yīng)的統(tǒng)一碼為0x738B。
根據(jù)實際需要挑選制作字庫的所需語言的統(tǒng)一碼。若所需語言為漢語,根據(jù)實際需要確定需要的漢語字符或字符集。該漢語字符或字符集是由產(chǎn)品的功能或用戶的需要所決定的。一般情況下,一些產(chǎn)品所用到的字符和字符集都是固定的。比如,目前正在的應(yīng)用的機頂盒,一般用到是GB2312標(biāo)準(zhǔn)的字符集。而對于臺灣用戶,可能會用到BIG5字庫,因為該BIG5字庫可以支持漢語繁體,可以方便臺灣用戶的使用。利用挑選出來的所有字符或字符集的統(tǒng)一碼建立統(tǒng)一碼的編碼列表。比如挑選的字符為'、'’'、'系'、'統(tǒng)'、'置'、'設(shè)',則該挑選的字符的各自的統(tǒng)一碼為0x2018、0x2019、0x7CFB、0x7EDF、0x7F6E、0x8BBE。利用挑選的字符的各自的統(tǒng)一碼建立統(tǒng)一碼的編碼列表。其中,該統(tǒng)一碼的編碼列表是按照由小到大的順序排列所有的統(tǒng)一碼,這樣可以便于查找統(tǒng)一碼。另外,該編碼列表也可以在步驟101以前提前制作好的。步驟104,利用所需語言的統(tǒng)一碼的編碼列表從點陣字庫中選取字符。
具體地,以BDF點陣字庫為例,右單引號字符'’'的統(tǒng)一碼為0x2019,查找到在BDF點陣字庫中對右單引號字符的描述如下F0NTB0UNDINGB0X 20 20-2-8STARTCHAR 0027ENCODING 39DffIDTH 70BBX 47212在本發(fā)明實施例中,將該BDF文件中F0NTB0UNDINGB0X字段第二個參數(shù)作為字符的整體高屬性^fDWI DTH字段的第一個參數(shù)作為字符的整體寬屬性^fBBX字段的四個參數(shù)分別作為字符的實體寬屬性、字符的實體高屬性、字符的實體相對于字符的整體的橫向偏移和字符的實體相對于字符的整體的縱向偏移。步驟105,根據(jù)字符獲取第一字模數(shù)據(jù)和字符的第一屬性。具體地,以右單引號字符'’'為例,根據(jù)步驟103中查找到的在BDF點陣字庫中對右單引號字符的描述,可以得到該右單引號字符的字模數(shù)據(jù)和字符的屬性。其中,字符的第一字模數(shù)據(jù)為字符的實體數(shù)據(jù);字符的第一屬性包括字符整體的寬、高;字符實體的寬、高;字符實體相對于所述字符整體的水平方向、豎直方向的偏移值。如圖2所示,圖2包括右單引號字符的整體21和單引號字符的實體22。右單引號字符的整體21的屬性包括右單引號字符的整體寬和右單引號字符的整體高,單引號字符的實體22的屬性包括右單引號字符的實體寬和右單引號字符的實體高,單引號字符的實體22與右單引號字符的整體21相比,得到單引號字符的實體22相對于右單引號字符的整體21的水平方向的偏移和豎直方向的偏移值。各屬性值根據(jù)BDF點陣字庫中對右單引號字符的描述得出。具體如下將該BDF文件中F0NTB0UNDINGB0X字段第二個參數(shù)作為字符的整體高屬性;將DWIDTH字段的第一個參數(shù)作為字符的整體寬屬性^fBBX字段的四個參數(shù)分別作為字符的實體寬屬性、字符的實體高屬性、字符的實體相對于字符的整體的橫向偏移和字符的實體相對于字符的整體的縱向偏移。右單引號字符的整體寬度7位;即DWIDTH字段的第一個參數(shù)。右單引號字符的整體高度20位;8卩F0NTB0UNDINGB0X字段第二個參數(shù)。
右單引號字符的實體寬度4位;8卩BBX字段的第一個參數(shù)。右單引號字符的實體高度-J位;即BBX字段的第二個參數(shù)。右單引號字符的實體相對于整體的水平偏移值2位;即BBX字段的第三個參數(shù)。右單引號字符的實體相對于整體的垂直偏移值12位JPBBX字段的第四個參數(shù)。另外,右單引號字符的第一字模數(shù)據(jù)為右單引號字符的實體數(shù)據(jù)。該右單引號字符的實體數(shù)據(jù)在BDF文件中的具體描述如表I所示。表I中包括原始數(shù)據(jù)即第一字模數(shù)據(jù),用16進制表示;還包括將原始數(shù)據(jù)轉(zhuǎn)化為2進制表示的數(shù)據(jù);同時,原始數(shù)據(jù)中的有效部分為高4位,用二進制表示。表I
權(quán)利要求
1.一種字庫的制作方法,其特征在于,所述方法包括 獲取所述制作所述字庫的所需語言的矢量字庫; 將所述矢量字庫轉(zhuǎn)換為點陣字庫; 利用所述所需語言的統(tǒng)一碼的編碼列表從所述點陣字庫中選取字符; 根據(jù)所述字符獲取所述字符的第一字模數(shù)據(jù)和所述字符的第一屬性; 根據(jù)所述統(tǒng)一碼的編碼列表、所述字符的第一字模數(shù)據(jù)和所述字符的第一屬性組成所述字庫。
2.根據(jù)權(quán)利要求I所述的字庫的制作方法,其特征在于,所述利用所述所需語言的統(tǒng)一碼的編碼列表從所述點陣字庫中選取字符之前還包括 挑選所述制作所述字庫的所需語言的統(tǒng)一碼并建立所述統(tǒng)一碼的編碼列表。
3.根據(jù)權(quán)利要求I所述的字庫的制作方法,其特征在于,所述根據(jù)所述字符獲取所述字符的第一字模數(shù)據(jù)和所述字符的第一屬性之后還包括 將所述字符的所述第一字模數(shù)據(jù)進行裁剪,從而生成第二字模數(shù)據(jù); 根據(jù)所述字符的第一屬性計算所述字符的所述第二字模數(shù)據(jù)的存儲值和基于所述第二字模數(shù)據(jù)的存儲值計算所述字符的第二屬性; 根據(jù)所述統(tǒng)一碼的編碼列表、所述字符的第一屬性、所述字符的第二屬性和所述字符的第二字模數(shù)據(jù)組成所述字庫。
4.根據(jù)權(quán)利要求3所述的字庫的制作方法,其特征在于,所述制作所述字庫的所需語言的種類為兩種或兩種以上,并且所述制作的所述字庫為多語言字庫。
5.根據(jù)權(quán)利要求4所述的字庫的制作方法,其特征在于,所述制作所述多語言字庫的所需的多個所述點陣字庫之間具有不同的字符屬性。
6.根據(jù)權(quán)利要求I所述的字庫的制作方法,其特征在于,所述字符的第一字模數(shù)據(jù)和所述字符的第一屬性具體為 所述字符的第一字模數(shù)據(jù)為所述字符的以行對齊方式存儲的實體數(shù)據(jù); 所述字符的第一屬性包括所述字符整體的寬、高;所述字符實體的寬、高;所述字符實體相對于所述字符整體的水平方向、豎直方向的偏移值。
7.根據(jù)權(quán)利要求3所述的字庫的制作方法,其特征在于,所述將所述字符的所述第一字模數(shù)據(jù)進行裁剪,從而生成第二字模數(shù)據(jù)具體為 對所述第一字模數(shù)據(jù)進行裁剪,去掉所述第一字模數(shù)據(jù)中的無效部分,保留所述第一字模數(shù)據(jù)中的有效部分,并進行整體對齊,當(dāng)所述第二字模數(shù)據(jù)結(jié)尾不足一個字節(jié),則補足一個字節(jié)。
8.根據(jù)權(quán)利要求3所述的字庫的制作方法,其特征在于,所述字符的第二字模數(shù)據(jù)的存儲值的計算公式為
9.根據(jù)權(quán)利要求8所述的字庫的制作方法,其特征在于,所述字符的第二屬性為所述第二字模數(shù)據(jù)的偏移地址;所述第二字模數(shù)據(jù)的偏移地址為所述字符在第二字模數(shù)據(jù)庫中之前的所有的所述字符的第二字模數(shù)據(jù)的存儲值之和。
10.一種字庫的制作裝置,其特征在于,所述裝置包括 第一獲取單元,用于獲取所述制作所述字庫的所需語言的矢量字庫; 轉(zhuǎn)換單元,用于將所述矢量字庫轉(zhuǎn)換為點陣字庫; 選取單元,用于利用所述所需語言的統(tǒng)一碼的編碼列表從所述點陣字庫中選取字符; 第二獲取單元,用于根據(jù)所述字符獲取所述字符的第一字模數(shù)據(jù)和所述字符的第一屬性; 第一組成單元,用于根據(jù)所述統(tǒng)一碼的編碼列表、所述字符的第一字模數(shù)據(jù)和所述字 符的第一屬性組成所述字庫。
11.根據(jù)權(quán)利要求10所述的字庫的制作裝置,其特征在于,所述裝置還包括 挑選單元,用于挑選所述制作所述字庫的所需語言的統(tǒng)一碼并建立所述統(tǒng)一碼的編碼列表。
12.根據(jù)權(quán)利要求10所述的字庫的制作裝置,其特征在于,所述裝置還包括 生成單元,用于將所述字符的所述第一字模數(shù)據(jù)進行裁剪,從而生成第二字模數(shù)據(jù); 計算單元,用于根據(jù)所述字符的第一屬性計算所述字符的所述第二字模數(shù)據(jù)的存儲值和基于所述第二字模數(shù)據(jù)的存儲值計算所述字符的第二屬性; 第二組成單元,用于根據(jù)所述統(tǒng)一碼的編碼列表、所述字符的第一屬性、所述字符的第二屬性和所述字符的第二字模數(shù)據(jù)組成所述字庫。
全文摘要
本發(fā)明涉及一種字庫的制作方法和裝置,該方法包括獲取所述制作所述字庫的所需語言的矢量字庫;將所述矢量字庫轉(zhuǎn)換為點陣字庫;利用所述所需語言的統(tǒng)一碼的編碼列表從所述點陣字庫中選取字符;根據(jù)所述字符獲取所述字符的第一字模數(shù)據(jù)和所述字符的第一屬性;根據(jù)所述統(tǒng)一碼的編碼列表、所述字符的第一字模數(shù)據(jù)和所述字符的第一屬性組成所述字庫。因此,該字庫的制作方法和裝置易于實現(xiàn),同時方便裁剪字庫,從而使得該字庫可以支持不同語言和不同字號。
文檔編號G06F17/30GK102750337SQ201210180060
公開日2012年10月24日 申請日期2012年6月1日 優(yōu)先權(quán)日2012年6月1日
發(fā)明者劉春梅, 葉曉舟, 王健飛, 郭志川 申請人:中國科學(xué)院聲學(xué)研究所
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
汝城县| 清镇市| 乐安县| 榆林市| 龙胜| 吴旗县| 筠连县| 安塞县| 澄迈县| 贞丰县| 岑巩县| 偃师市| 瑞丽市| 孝感市| 玉山县| 定州市| 綦江县| 田阳县| 颍上县| 依安县| 施秉县| 凤冈县| 海晏县| 香港 | 沂源县| 丰镇市| 宜春市| 阿城市| 和龙市| 托克逊县| 漯河市| 象山县| 盐源县| 合肥市| 开阳县| 格尔木市| 曲靖市| 桓台县| 屏东县| 阜新| 台江县|