?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[/]^_`abcdefghijklmnopqrstuvwxyz{|}~€°■▪如果要显示汉字,并且设置大小、粗细等等参数,必须要" />

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

系统 1897 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条评论