.Net Micro Framework研究—Tinyfnt字型研究

來源:互聯網
上載者:User
目前.Net Micro Framework系統僅支援Tinyfnt字型檔,官方僅提供兩種字型檔:NinaB.tinyfnt,small.tinyfnt。用我後來做的程式開啟這兩種字型,發現它們僅支援如下100字元:!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[/]^_`abcdefghijklmnopqrstuvwxyz{|}~°■ 如果要顯示漢字,並且設定大小、粗細等等參數,必須要用專門的轉換工具把windows中的ttf字型轉換為Tinyfnt字型。這部分內容可以參見我以前寫的文章《.Net Micro Framework研究—中文顯示》:http://blog.csdn.net/yefanqiu/archive/2007/11/01/1862300.aspx其實上篇文章有點問題,其實 AddFontToProcess C:/Windows/Fonts/Miramo.ttf 指令可以不用,真正起作用的是SelectFont命令中的FN參數。此外SelectFont命令中的UN參數是無效的,加這個參數和不加這個參數,轉換後的Tinyfnf字型檔位元據完全相同。我對我以前的字型轉換工具又進行了改進,一是重新調整了介面,二是支援多語言(目前支援英文和簡體中文兩種)。下面是軟體:由於官方不公開Tinyfnt字型的結構檔案,自己只好從現成的二進位檔案進行分析了,下面是我對Tinyfnt檔案定義的一個結構體,其主要的參數如下:        private class MFFont        {            public UInt16 uSize;            //資料長度 +27=檔案總長度               public byte bytHeight;          //字型高度            public UInt16 uGroupNum;        //字型組個數            public UInt16 uFontNum;         //字型個數            public UInt16[] uFontStart;     //起始字元1            public UInt16[] uFontEnd;       //結束字元1    } 通過這個結構體,你就可以還原出這個字型檔中包含的文字內容和字型高度了,不過很可惜,通過我目前的解析,還是無法從字型檔中獲知原始字型檔的名稱(如是宋體還是黑體等等?),是否粗體?斜體?等等參數。除此之外剩下的字型檔內容想必就是字型的點陣結構了,具體的內容我沒有多加驗證,有機會我再和大家一一探討。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.