【问题标题】:Individual glyph size manipulation for dynamically generated font动态生成字体的单独字形大小操作
【发布时间】:2017-05-29 18:26:18
【问题描述】:

是否有任何简单的方法可以对字体中的单个字形大小进行操作?换句话说,我想根据指定的公式为字体中的各个字形动态生成具有不同大小(或大小外观)的字体。

例如,“A”可能看起来是其原始大小的 150%,而“B”可能是其原始大小的 50%。

生成的字体将用于网页。这将允许我影响字符大小,即使对于相同的字体大小并且无需单独字母的额外 CSS 样式。 (对于包含大量文本的网页,CSS 样式化单个字母会导致性能/解析器过度杀伤。)

我不确定这种字形大小转换是否可以通过某种简单的方式进行,或者是否需要为每个受影响的字形编写单独的字形轮廓转换公式。

为每个字形编写轮廓转换公式(基于单个字形轮廓)可能取决于字体,在我的用例中不值得。

字体可以生成/操作一次(首选 JS/Java/Python 库或方法),然后字体应该可以在网页上使用。

请问您有什么想法吗?提前谢谢你。

【问题讨论】:

    标签: fonts webfonts glyph


    【解决方案1】:

    我不明白你为什么要这样做,而且听起来很丑,但是你去吧:

    FontForge(一个免费工具)允许您缩放单个字形。您将打开文件,选择要缩放的字形,按 Ctrl-反斜杠(或从菜单中选择 Element>Transformations>Transform)。起源应该是“字形起源”;选择“比例”并设置您的比例百分比;将其他两个下拉菜单保留为“什么都不做”。 如果可以的话,请检查“Transform Width Too”。

    似乎存在一个错误,这意味着有时会禁用“变换宽度”选项。如果是这样,您需要在完成变换后手动调整 Advance 宽度(Metrics>Set Width>Scale Width By,并输入相同的百分比值)。

    如果您在 linux 上运行 FontForge,您甚至可以编写 python 脚本,如果您想以编程方式执行此操作。因为你说这是一个一次性的过程,所以按照我的描述手动完成可能要容易得多。

    从设计师的角度来看,有时将不同大小的文本混合在一起是有原因的,但在这些情况下,需要考虑使笔画宽度也可以一起使用。大文本应该更轻/更细,小文本更粗体。这与人们对using true small caps rather than just reducing the text size 的看法相同。查看 FontForge 功能 Element>Style>Change Weight。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-12
      • 2016-01-14
      • 1970-01-01
      相关资源
      最近更新 更多