recovery字庫相關(guān),如何修改字庫文件
任務(wù)是要漢化Android中的Recovery,就了解了bootable/recovery/minui/font_10x18.h這個英文字庫的來歷,最終漢化的時候并沒有自己漢字字庫,用的github上現(xiàn)成的,但font_10x18.h來歷短暫的留存在腦子里邊不如記下來,這樣會有好處,比如要更改字體風(fēng)格、更改字體大小、如果要求實(shí)現(xiàn)其它非英語語言,都會重新來研究這個!
先預(yù)覽一下font_10x18.h:
[cpp]
view plain
copy
struct?{????unsigned?width;????unsigned?height;????unsigned?cwidth;????unsigned?cheight;????unsigned?char?rundata[];??}?font?=?{????.width?=?960,????.height?=?18,????.cwidth?=?10,????.cheight?=?18,????.rundata?=?{??0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x55,0x82,0x06,0x82,0x02,0x82,0x10,0x82,??...........................................................................??0x84,0x3f,??0x00,????}??};??
文件中有幾點(diǎn):
① font 的結(jié)果體類型來歷
② font 中各個元素值由誰決定的
一點(diǎn)一點(diǎn)來找答案!
一、
打開BMFont后,右邊的列表是我的字體庫,各種不同的字體。選中第一項"Latin+Latin Supplement".
①Options->Font Setting:
圖中Size對應(yīng)結(jié)構(gòu)體中cwidth; 圖中Height %對應(yīng)結(jié)構(gòu)體中cheigh占height的百分比。
②Options->Export Options:
圖中Width對應(yīng)結(jié)構(gòu)體中width;圖中Height對應(yīng)結(jié)構(gòu)體中height;
③Options->save bitmap font as..
然后輸入導(dǎo)出的文件名tmp,文件類型默認(rèn)選.fnt,然后就會發(fā)現(xiàn)導(dǎo)出路徑多了一個tmp_0.png的文件,那就是字庫圖片資源。需要的是這個png文件。fnt文件并不是我們需要的!
二、
有了tmp_0.png是成功的一半,下面要用到ps的linux版本gimp。
①打開gimp,文件->打開 來打開tmp_0.png
②文件->導(dǎo)出 輸出名字填tmp.c
③在彈出的"圖像導(dǎo)出C源碼"配置對話框做如下配置:
tmp.c到font.c就差一步了
三、
取出android源碼中的mkfont.c(bootable/recovery/minui/),然后和tmp.c一起編譯:
一起編譯最好的方法是將tmp.c換成頭文件tmp.h 然后mkfont.c中添加該頭文件!然后gcc mkfon.c
./a.out > font.h
此時打開font.h就會font_10x18.h并無大的差別了。唯一的差別是rundata這個元素,這個是選用的不同字體會生成不同的內(nèi)容。
綜上所述,可以總結(jié)流程圖: