我在哪里可以找到.fon格式的规范?

13

我在考虑制作一款位图字体编辑器,但是我完全找不到有关 .fon 内部结构的任何信息。

有人知道我可以在哪里找到吗?或者唯一的解决方案是自己分析这些文件吗?

2个回答

28

我要先说明一下,“FON”已经成为几种不同字体格式的常见文件扩展名。其中最常见的是微软的,但还有其他自称为FON的文件使用完全不同的格式。所以你可能需要再次确认一下。我下面提供的信息仅适用于微软格式。

FON实际上只是EXE格式,也就是说:FON文件是包含字体资源(仅限字体资源)的EXE文件,重命名为FON文件扩展名。关于这方面的更多信息,请参阅这篇非常古老的文档,写于FON推出时期

你可能真正感兴趣的是字体资源格式,即FNT。微软有很好的文档资料

基本上你所做的是创建你的FNT资源,然后将它们编译成一个Windows可执行文件(你可以在一个FON中包含多个FNT;通常的做法是将同一字体的多个尺寸打包到一个FON中)。


你好。我们能在Linux中使用.FON字体吗? - Ammar Ul Hassan
@AmmarUlHassan,请将此作为一个新问题提出(而不是在现有问题/答案的评论中)。 - djangodude
真遗憾...我为旧游戏格式制作了一个像素字体编辑器,并收到了将它们输出为可用于Windows的位图字体的请求,但是这种文件类型似乎不太可能从我的编辑器中以编程方式编写。 - Nyerguds
6
以下是该知识库文章的另一个链接:https://jeffpar.github.io/kbarchive/kb/065/Q65123/。 - Daveman
我本以为LoadLibraryEx()的某个版本可以用于.fon文件,但事实并非如此。它只会返回错误:0x800700c1 HRESULT_FROM_WIN32(ERROR_BAD_EXE_FORMAT):%1不是一个有效的Win32应用程序。 - Menace

9

因为其他答案中链接的微软知识库文章#65123已经无法使用(“抱歉,页面未找到”),所以这里有一些我找到的替代方案:

引用来自存档小组页面:

FON是一种原生于Microsoft Windows的字体文件格式。随着TrueType的引入,它开始在Windows 3.1中逐渐被边缘化,尽管它仍然得到支持。 它包含了FNT格式的字体。因此,它支持位图和描边字体; 但除了与Windows一起提供的描边字体(现代、罗马和脚本)之外,它几乎只用于位图字体。有时甚至被称为Windows位图字体格式。 该页面链接到FNT (Windows Font)维基页面,解释了文件格式,还有Windows SDK PDF,从第423页开始,其中包含FON文件格式内容的描述。

1
这个 GitHub 仓库中有一个用 Python 编写的文本描述到 .fnt 文件转换程序。https://github.com/juanitogan/mkwinfont - Richard Chambers
以上存储库还包含在注释中提到的“dewinfont”实用程序。 - i336_

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接