?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[/]^_`abcdefghijklmnopqrstuvwxyz{|}~?°■?如果要顯示漢字,并且設置大小、粗細等等參數,必須要" />

日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

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

系統 2589 0
目前.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
}
通過這個結構體,你就可以還原出這個字庫中包含的文字內容和字體高度了,不過很可惜,通過我目前的解析,還是無法從字體文件中獲知原始字體文件的名稱(如是宋體還是黑體等等?),是否粗體?斜體?等等參數。
除此之外剩下的字庫內容想必就是字體的點陣結構了,具體的內容我沒有多加驗證,有機會我再和大家一一探討。

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


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 桑日县| 都匀市| 大足县| 荃湾区| 江陵县| 汽车| 通城县| 商城县| 贵德县| 江阴市| 富宁县| 河池市| 阿拉善盟| 正镶白旗| 新宾| 玉田县| 攀枝花市| 青阳县| 鹿邑县| 翼城县| 鹤岗市| 额尔古纳市| 舞阳县| 宿州市| 邵东县| 榆中县| 五指山市| 商南县| 碌曲县| 鞍山市| 太谷县| 临桂县| 肥东县| 庄河市| 南宫市| 彭山县| 横山县| 诸城市| 祁门县| 黄山市| 尚志市|