构建用于调整字体中字符的字距和间距的软件[关闭]
Posted
技术标签:
【中文标题】构建用于调整字体中字符的字距和间距的软件[关闭]【英文标题】:Building a Software for adjusting kerning and spacing of Characters in a Typeface [closed] 【发布时间】:2012-10-23 02:17:18 【问题描述】:正如标题所暗示的,我想构建一个可以读取 .ttf 和 .otf 文件的软件,然后允许用户调整字距、字符宽度和字符间距。我知道项目 freetype,但它是用 C 编写的,我只能用 C# 和 Python 编写代码。 .otf 和 .ttf 逻辑编码有多难?
谢谢 变形
【问题讨论】:
祝你好运!这真的很难。并详细说明,尝试准确读取任何 .otf/.ttf 的元数据,如果您找到方法,请告诉我们。 @rantanplan 这确实让我很沮丧,但还是谢谢 我真的很抱歉,但我只是想为您节省宝贵的时间 :) 在那里,这简直就是地狱。但是您可以尝试阅读 ttf/ps/otf 标准的规范并亲自查看。 【参考方案1】:您询问编写软件来读取 TrueType (.ttf) 和 OpenType (.otf) 文件有多难,从而可以调整字距调整、字符宽度和字符间距表。好吧,我会告诉你的。很难。
Microsoft Typography 的The OpenType Font File 很好地介绍了 TrueType 和 OpenType 字体文件的高级结构。内部结构是一些全局索引和校验和字段,然后是一些“表”,每个“表”都有自己的内部结构。您将需要编写代码来解压缩此全局结构,解析和修改您要更改的表,然后重建全局结构并重新计算校验和。
要让您的用户修改字距调整、字符宽度和字符间距,您可能至少需要修改kern
、hmtx
和gpos
表。对这些表的更改可能会影响其他表中的值。
此外,文本引擎和应用软件对 OpenType 或 TrueType 字体的内容有自己的期望。这些交互是复杂的,并不总是有据可查。我希望所有与要求苛刻的文本布局软件一起使用的功能强大、可靠的字体都有关于其内容的详细信息,这反映了大量的专业知识和痛苦的经历。
如果您认为学习 C 语言以使用现有的 freetype 代码很困难,请等到您尝试调试为什么您的工具修改的字体无法在您的文本布局软件中工作。
你没有说你想对字体做什么样的修改。为什么不购买现有软件,而不是自己制作?有一些应用软件,比如FontLab's TypeTool,它可以让你完成所有你需要的字距、字符宽度和字符间距的编辑。当然,这需要花钱,但请考虑您的时间值多少钱,以及您需要多长时间才能使代码充分运行以满足您的需求。
如果您真的想继续编写自己的代码,您可能会发现Adobe Font Development Kit for Opentype (AFDKO) 很有用。祝你好运。
【讨论】:
以上是关于构建用于调整字体中字符的字距和间距的软件[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
使用 Swift 调整 UIBarButtonItem 的字距
PHP:直接利用 Unicode 字形和 Open Type 字体 (otf) 的字距调整表的优势来创建 PDF 作为服务器响应