C# 构建用于调整字体中字符的字距和间距的软件

C# 构建用于调整字体中字符的字距和间距的软件,c#,python,kerning,opentype,letter-spacing,C#,Python,Kerning,Opentype,Letter Spacing,正如标题所示,我想构建一个可以读取.ttf和.otf文件的软件,然后允许用户调整字距、字符宽度和字符间距。我知道freetype项目,但它是用C编写的,我只能用C#和Python编写代码。编码.otf和.ttf逻辑有多困难 谢谢 Morph您询问编写软件读取TrueType(.ttf)和OpenType(.otf)文件有多困难,从而允许调整字距、字符宽度和字符间距表。好吧,我告诉你。这很难 Microsoft排版是对TrueType和OpenType字体文件的高级结构的一个很好的介绍。内部结构是

正如标题所示,我想构建一个可以读取.ttf和.otf文件的软件,然后允许用户调整字距、字符宽度和字符间距。我知道freetype项目,但它是用C编写的,我只能用C#和Python编写代码。编码.otf和.ttf逻辑有多困难

谢谢
Morph

您询问编写软件读取TrueType(.ttf)和OpenType(.otf)文件有多困难,从而允许调整字距、字符宽度和字符间距表。好吧,我告诉你。这很难

Microsoft排版是对TrueType和OpenType字体文件的高级结构的一个很好的介绍。内部结构是一些全局索引和校验和字段,然后是一些“表”,每个表都有自己的内部结构。您将需要编写代码来解包这个全局结构,解析和修改您想要更改的表,然后重建全局结构并重新计算校验和

要允许用户修改字距、字符宽度和字符间距,您可能至少需要修改、和表。对这些表的更改可能会影响其他表中的值

此外,文本引擎和应用软件对OpenType或TrueType字体的内容有自己的期望。这些相互作用是复杂的,并不总是有很好的记录。我希望所有与要求严格的文本布局软件配合使用的功能强大、可靠的字体都有关于其内容的详细信息,这反映了大量的技术诀窍和痛苦的经验

如果您认为为了使用现有的freetype代码而学习C语言是困难的,那么请等到您尝试调试为什么您的工具修改的字体在您的文本布局软件中不起作用

你不会说你想对字体做什么样的修改。为什么不购买现有的软件,而不是自己制作呢?有一些应用软件,比如,可以让你做所有你需要的字距、字符宽度和字符间距的编辑。当然,它花费金钱,但是考虑你的时间有多大,你需要多少时间来让你的代码工作得足够好来满足你的需要。
如果您真的想继续编写自己的代码,您可能会发现这些代码很有用。祝你好运。

你问过编写软件来读取TrueType(.ttf)和OpenType(.otf)文件有多难,从而可以调整字距、字符宽度和字符间距表。好吧,我告诉你。这很难

Microsoft排版是对TrueType和OpenType字体文件的高级结构的一个很好的介绍。内部结构是一些全局索引和校验和字段,然后是一些“表”,每个表都有自己的内部结构。您将需要编写代码来解包这个全局结构,解析和修改您想要更改的表,然后重建全局结构并重新计算校验和

要允许用户修改字距、字符宽度和字符间距,您可能至少需要修改、和表。对这些表的更改可能会影响其他表中的值

此外,文本引擎和应用软件对OpenType或TrueType字体的内容有自己的期望。这些相互作用是复杂的,并不总是有很好的记录。我希望所有与要求严格的文本布局软件配合使用的功能强大、可靠的字体都有关于其内容的详细信息,这反映了大量的技术诀窍和痛苦的经验

如果您认为为了使用现有的freetype代码而学习C语言是困难的,那么请等到您尝试调试为什么您的工具修改的字体在您的文本布局软件中不起作用

你不会说你想对字体做什么样的修改。为什么不购买现有的软件,而不是自己制作呢?有一些应用软件,比如,可以让你做所有你需要的字距、字符宽度和字符间距的编辑。当然,它花费金钱,但是考虑你的时间有多大,你需要多少时间来让你的代码工作得足够好来满足你的需要。
如果您真的想继续编写自己的代码,您可能会发现这些代码很有用。祝你好运。

说真的,祝你好运!这真的很难。更详细地说,试着准确地阅读任何.otf/.ttf的元数据,如果你有办法,请告诉我们。@rantanplan这确实让我沮丧,但无论如何,谢谢你我真的很抱歉,但我只是想为你节省宝贵的时间:)在那里,那是一个可怕的地狱。但是你可以试着阅读ttf/ps/otf标准的规格,自己看看。真的祝你好运!这真的很难。更详细地说,试着准确地阅读任何.otf/.ttf的元数据,如果你有办法,请告诉我们。@rantanplan这确实让我沮丧,但无论如何,谢谢你我真的很抱歉,但我只是想为你节省宝贵的时间:)在那里,那是一个可怕的地狱。但您可以尝试阅读ttf/ps/otf标准的规范,并亲自查看。