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

简介:

目前.Net Micro Framework系统仅支持Tinyfnt字体文件,官方仅提供两种字库:NinaB.tinyfnt,small.tinyfnt。用我后来做的程序打开这两种字体,发现它们仅支持如下100字符:
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€°■▪ 
如果要显示汉字,并且设置大小、粗细等等参数,必须要用专门的转换工具把windows中的ttf字体转换为Tinyfnt字体。
这部分内容可以参见我以前写的文章《.Net Micro Framework研究—中文显示》:http://yfsoft.blog.51cto.com/1635641/323403其实上篇文章有点问题,其实 AddFontToProcess C:\Windows\Fonts\Miramo.ttf 指令可以不用,真正起作用的是SelectFont命令中的FN参数。此外SelectFont命令中的UN参数是无效的,加这个参数和不加这个参数,转换后的Tinyfnf字体文件二进制数据完全相同。
我对我以前的字体转换工具又进行了改进,一是重新调整了界面,二是支持多语言(目前支持英文和简体中文两种)。
下面是软件截图:

 

 


由于官方不公开Tinyfnt字体的结构文件,自己只好从现成的二进制文件进行分析了,下面是我对Tinyfnt文件定义的一个结构体,其主要的参数如下:
    


 
 
  1. private class MFFont  
  2.     {  
  3.         public UInt16 uSize;            //数据长度 +27=文件总长度     
  4.         public byte bytHeight;          //字体高度  
  5.         public UInt16 uGroupNum;        //字体组个数  
  6.         public UInt16 uFontNum;         //字体个数  
  7.         public UInt16[] uFontStart;     //起始字符1  
  8.         public UInt16[] uFontEnd;       //结束字符1  
  9. }   

通过这个结构体,你就可以还原出这个字库中包含的文字内容和字体高度了,不过很可惜,通过我目前的解析,还是无法从字体文件中获知原始字体文件的名称(如是宋体还是黑体等等?),是否粗体?斜体?等等参数。
除此之外剩下的字库内容想必就是字体的点阵结构了,具体的内容我没有多加验证,有机会我再和大家一一探讨。





















本文转自yefanqiu51CTO博客,原文链接:http://blog.51cto.com/yfsoft/322943,如需转载请自行联系原作者

相关文章
|
6月前
|
API C++ Windows
Visual C++运行库、.NET Framework和DirectX运行库的作用及常见问题解决方案,涵盖MSVCP140.dll丢失、0xc000007b错误等典型故障的修复方法
本文介绍Visual C++运行库、.NET Framework和DirectX运行库的作用及常见问题解决方案,涵盖MSVCP140.dll丢失、0xc000007b错误等典型故障的修复方法,提供官方下载链接与系统修复工具使用指南。
1515 2
|
9月前
|
C++ Windows
.NET Framework安装不成功,下载`NET Framework 3.5`文件,Microsoft Visual C++
.NET Framework常见问题及解决方案汇总,涵盖缺失组件、安装失败、错误代码等,提供多种修复方法,包括全能王DLL修复工具、微软官方运行库及命令行安装等,适用于Windows系统,解决应用程序无法运行问题。
1330 3
|
6月前
|
开发框架 安全 .NET
Microsoft .NET Framework 3.5、4.5.2、4.8.1,适用于 Windows 版本的 .NET,Microsoft C Runtime等下载
.NET Framework是Windows平台的开发框架,包含CLR和FCL,支持多种语言开发桌面、Web应用。常用版本有3.5、4.5.2、4.8.1,系统可同时安装多个版本,确保软件兼容运行。
1502 0
Microsoft .NET Framework 3.5、4.5.2、4.8.1,适用于 Windows 版本的 .NET,Microsoft C Runtime等下载
|
7月前
|
C++
提示缺少.NET Framework 3.5 安装错误:0x80070002、0x800F0950\0x80004002
.NET Framework常见问题及解决方法汇总,
895 0
|
9月前
|
C++ Windows
WindowsDLL修复专家,MSVCP**、DLL修复vcruntime**、DLL修复、`.Net Framework`缺失、DirectX类DLL修复、VC运行库修复
Windows DLL修复专家是一款专为解决因DLL文件缺失、版本错误导致的软件或游戏无法运行问题的系统工具。它支持一键扫描和修复各类DLL异常,涵盖MSVCP、vcruntime、.NET Framework、DirectX等多种常见问题。具备自动检测、备份还原功能,确保修复过程安全可靠。适用于软件报错、系统异常及新系统适配场景,降低用户手动修复门槛,提升系统稳定性与兼容性。
379 3
|
8月前
.NET Framework 3.5离线安装包合集下载
本文介绍了如何获取和安装.NET Framework运行库离线合集包。用户可通过提供的链接下载安装包,安装过程简单,按提示逐步操作即可完成。安装时可选择所需版本,工具会自动适配架构,无需手动判断,方便高效。
6306 0
使用的是.NET Framework 4.0,并且需要使用SMTP协议发送电子邮件
使用的是.NET Framework 4.0,并且需要使用SMTP协议发送电子邮件
222 1
|
人工智能 机器人
D1net阅闻 | 谷歌DeepMind研究发现LLM新特性
D1net阅闻 | 谷歌DeepMind研究发现LLM新特性
|
开发框架 缓存 监控
NET Framework 到 .NET 5/6 的迁移是重大的升级
本文详细介绍了从 .NET Framework 4.8 迁移到 .NET 5/6 的过程,通过具体案例分析了迁移策略与最佳实践,包括技术栈评估、代码迁移、依赖项更新及数据库访问层的调整,强调了分阶段迁移、保持代码可维护性及性能监控的重要性。
263 3
下一篇
开通oss服务