201007477 九、發明說明: 【發明所屬之技術領域】 本發明是有關於一種供用戶自定義字體之方法,特別是有關 於一種讓用戶以字元圖片打包成字體槽於欲入式系統中使用的技 術領域。 【先前技術】 隨著嵌入式裝置(掌上型數位助理)的存儲容量越來越大,用戶 對嵌入式裝置的功能也越來越多。其中,嵌入式裝置個人化便是 其中一項受重視的功能。許多用戶喜歡用可以代表其個性的特殊 字體’雖然嵌入式裝置上有很多種字型字體可供用戶下載,但仍 不夠滿足一些用戶對更個性化字體的的需求,如親筆字體等。 在習知技藝中’嵌入式裝置可以通過制定特殊的腳本 (script) ’逐個使用圖片來顯示一些字元(character),但圖片的顧示 不具備字形檔顯示的基本特點。顯示此種圖片的資料中亦需要再 特別指定圖片資源’而且此種傳統的圖片資源的顯示手法需要大 量的運算,對於性能限定的嵌入式裝置中不一定可以快速地使用 圖片來顯示字元。因此’如何兼顧讓用戶在嵌入式裝置上可自行 定義字體有不會消耗過多資源是一項丞待解決的問題。 【發明内容】 有鑑於上述習知技藝之問題,本發明之其中一目的就是在提 供一種供用戶自定義字體之方法,以提高嵌入式系統擴充字體的 便利性。 5 201007477 輝不㈣《目的,提出一麵用戶自定義字體之方法,適 2-嵌人m該供用戶自定義字體之方法包含下列步驟。 —,提供至少-字元圖片,再解析字元圖片的文件名,以取得 子凡圖片所對應的字元碼,並讀取字元圖片的文件數據。接著, 將至少-字元圖片打包成—字體播,以及將字如碼及文件數據 記ΐ於字體獅索引。當用戶選擇制此字體時,根據-欲顯示 的子7L碼’對字體權的索引進行檢索,當檢索匹配時,自字體構 *巾取得職此欲顯示字元顯字元® >1並顯示。 ® 其巾’字元圖#之文件名係包含字元碼。 其中’此方法更包含提供—對照表,騎絲記錄該字元圖 片之文件名無字元碼之對細係,祕據此賴絲取得此字 元圖片所對應的字元碼。 其中’此方法更包含將該至少一字元圖片所公用的調色板資 訊和字高資訊儲存於字體檔中。 其中’在用戶選擇使用該字體之步驟,更包含純入式系統 〇 執行一内建用以讀取字體的應用程式介面函數(API)。 承上所述,依本發明之供用戶自定義字體之方法,其可具有 一或多個下述優點: (1) 本發明可輸入用戶製作的圖像資源作為字元圖片,並以目 錄名區分字體類型,或以檔案名對應上字元碼,並將字元圖片資 訊中重複冗餘的部分僅保存一份作為公用資訊,此舉可降低嵌入 式系統使用使自定義字體的負擔。 (2) 本發明使用字體檔的索引及去除了很多冗餘的資訊,以避 免的不必要過濾和解析處理,加上以字體類型為單位在緩衝區集 201007477 =理’軌鮮的加細像魏,可提高雜齡速度, 疋用於運算能力有_嵌人_置_戶字義應用。 ⑶根據本發騎產生的字_可用於字體的統—介面函數 (I〇NT AH贿,料需躲以_字_賴用層的程 式’從而保證了已經發佈出去的應用程式能夠二進位相雜 compatible)。 【實施方式】 請參閱第1 ,其係為本發明之供用戶自定義字體之方法之 步驟流程圖。圖中’供用戶自定義字體之方法包含下列步驟。圖 中’在步驟11提供至少-字抑片’例如表—所示的分別顯示" 我"、"的"、”字"、”体”、"A"、”B”、,,c”及”D"的8張用戶手寫字 元圖片。相同類型的字元圖片可儲存於同一目錄,且目錄名稱可 包含此些字元圖片的字體類型名稱。 字元圖片 W - fjn 文件名 ISN_0x6211.b mp ISN__0x7684.b mp ISN_0x5b57.b mp ISN—0x4f53.bm p 字元圖片 A B G 文件名 ISN一 65.bmp ISN 66.bmp ISN_67.bmp ISN—68.bmp 表一 接著在步驟12解析字元圖片的文件名,以取得字元圖片所對 應的字元碼,並讀取字元圖片的文件數據。此文件數據係包含字 7 201007477 元圖片的寬度高度以及檔案偏移量(offset)。而在步驟13將至少 一字元圖片打包成一字體檔’以及將字元碼及文件數據記錄於字 體檔的索引。其中’此字體檔的索引可以一具備快速查找能力的 資料結構來記錄’例如紅黑樹資料結構(RedBlackTree),以提高 之後此索引進行檢索的速度。 字元圖片之文件名視需要可包含字元碼,例如在表一中,,,体 "字元圖片的文件名為ISN一0x4f53.bmp,"4f53"為”体"的字元碼,
"D”字元圖片的文件名為ISN一68.bmp,”68”為"D"的字元瑪,藉此 可加快此字體檔的索引的產生。此外,在執行步驟12之前亦可包 含提供一對照表,此對照表記錄字元圖片之文件名與字元碼之對 應關係,而執行步驟12時係根據此對照表以取得字元圖片所對應 的字元碼。 " 此外,在步驟13打包字體檔時,亦可將至少一字元圖片所公 用的調色板資訊和字高資訊儲存於字體檔中。藉此,可加速之& 應用此字體檔時的檢索速度。而字體檔產生之後,亦可對字體檔 進行壓縮,以縮小其資料量。 在步驟14當該用戶選擇使用該字體時,根據一欲顯示 對該子體槽的索引進行檢索,並於步驟ls判斷檢索是否匹配。 其中’當字體標的索引係以紅黑樹資料結構(RedBlaek ,錄時’财㈣14可制-最近最久未賴轉 =mly Used ’ LRU) ’並搭配一緩衝區來進行檢索。當配 時’在步驟I6從字體槽中取得對應欲顯示字元碼的字片、 不’如第2圖所示。在第2圖中,第1行及第2行传顯干表、中 的8個字體,而第3行為—般標準字體。仃_不表-中 8 201007477 凊參閱第3圖’其係為本發明之供用戶自定義字體之方法產 生字體其索引之實施例之步驟流程圖。圖中,此實施例由開 始展開,繼之,在步驟31判斷是否有指定的欲打包字元圖片清單, 若是’則執行步驟32。若否,則在步驟33判斷是否有指定的合法 i錄或私,若^ ’則闕祕步驟,若是,則在步驟%掃描此 口法目錄内的文件以產生—欲打包字元圖片清單,並執行步驟%。 在步驟32 ’解析子元圖片的文件名,以取得字元圖片所對應 〇的字元碼丄並讀取字元圖片的文件數據。其中,當字元圖片之文 件名包含字70碼’則解析字元圖片的文件名便可取得字元圖片所 ,應的子元碼胃子元圖片之文件名無包含字元瑪則步驟32執 行需要-記錄字元圖片之文件名與字元碼之對應_的對照表, 並於此對照表中查詢每一對應字元圖片的字元碼。 在步驟35將至少-字元圖片打包成一字體樓,以及將字元碼 及文件數據記錄於字體槽的索引。此字麵的索引可使用一具備 快速查找能力的資料結構來記錄,例如紅黑樹資料結構(制施洗 Tree) ’以提高之後此索引進行檢索的速度。接著,在步驟%判斷 此字體檔及其索引是否需壓縮,若否,職行步驟37輸出此字體 檔及其索引’接著結束此流程。 若此字體觀其糾需魏,則在步驟38 壓縮演算 法,而在步驟39對字義及其索引進行壓縮,接著進行步驟^。 請參閱第4圓’其係為本發明之供用戶自定義字體之方法使 用自定義字體之實施例之步驟_圖。圖中,麟程由開始展開, 繼^,在步驟41執行-字體應用程式介面函數伽聰),以取得 -子體來顯tf。此字體制程式介面函數可為嵌人絲統中内建 9 201007477 統一的介面函數’如表二所示的c或C++語言中的字型介面函數。 由於透過本發明之方法來製作的字賴可使用字體的統一介面函 數(FONT API)進行操作’並不需要修改到使用字體顯示應用層得 程式’從而保證了已經發佈出去的應用程式能夠二進位相容 (binary compatible)。藉此,可滿足用戶對字型的任意特殊的自定 義要求,且在編輯和製作自定義過程也不再需要複雜的字體 描述軟體。 - 與字型相關的介面函數 1 JJSHORTGetCharWidth( USHORT ch, USHORT fonttype) 2 USHORT GetFontHeight( USHORT fonttvne、 3 4 USHORT GetFontMatrix( USHORT ch, PUCHAR buffer, USHORT fonttype) USHORT WnteChar(SHORT x,SHORT y,USHORT ch, USHORT operate) —在步驟U ’判斷所操作的字體是否為下載字體,若是,則進 行=驟43 ’右否’則進行步驟μ使用預設字體料的備用方案, 或疋報σ錯誤独字元,例如” ? ”替鋪示等,接著結束此流 程。 若所操作的子體為下載字體,則在步驟43以一最近最久未使 用(LHIJ)/冑算法查詢此字體是^已經加翻緩衝區中。若此字 體已、’呈加載到緩衝區巾,則進行步驟Μ,若否,則進行步驟奶 加載此字體的侧資料至緩衝區’並在步驟47饋是否加載成 ❹ Ο 201007477 功,若是,則進行步驟45,若否,則進行步驟44。 在步驟45取得緩衝區的數據節點,並調整咖鍵表,接著 在步驟48提供下載子體數據服務,以顯示出如第2圖所示 面。結束此流程。 過3實施例’可朗本發明可輸域戶製作_像資源 子疋,並以目錄名區分字體類型,或以槽案名對應上字 兀此舉可降低使用者自定義字體的娜度。再者,本發明使 用字體標的索弓丨及絲了很多冗餘的資訊,以避免的不必要過渡 和解析處理。此外,字體類型可為單位在緩衝區集中管理,避免 ,,的加載圖像資源’可提高字體顯示速度’制是用於運算能 ^有限的故人式裝置的用戶字體的應用。此外,本發明所產生的 字體檔可祕字_統—介面錄(F〇NT綱進行操作並不需 要修改到使用字體顯示應闕的程式,從聽證了已經發佈出去 的應用程式能夠二進位相容。 X上所制|為舉雛,*非為限制性者。任何未脫離本發明 之精神與範可,而對其進行之等效修改或變更,均應包含於後附 之申請專利範圍中。 【圖式簡單說明】 第1圖係為本發明之供用戶自定義字體之方法之步驟流程圖; 第2圖係為本發明之用戶自定義字體之顯示示意圖; 第3圖係為本發明之彻戶自定義字體之方法產生字雜及其索 引之實施例之步驟流程圖;以及 201007477 第4圖係為本發明之供用戶自定義字體之方法使用自定義字體之 實施例之步驟流程圖。 【主要元件符號說明】 11-16、31〜39、41〜49 :步驟流程。 〇 ❿ 12