用于动态生成字体的单个字形大小操作

时间:2017-05-29 18:26:19

标签: fonts webfonts glyph

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

例如,'A'看起来像原始大小的150%,'B'可能有50%的原始大小。

生成的字体将在网页上使用。这将允许我影响字符大小,即使对于相同的字体大小,并且没有单独字母的附加CSS样式。 (CSS样式的单个字母对于具有大量文本的网页来说将是性能/解析器过度杀伤。)

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

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

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

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

1 个答案:

答案 0 :(得分:1)

我不明白你为什么要这样做,这听起来很难看,但是你走了:

FontForge(一个免费工具)允许您缩放单个字形。您可以打开文件,选择要缩放的字形,按Ctrl-Backslash(或从菜单中选择Element> Transformations> Transform)。起源应该是“雕文起源”;选择“比例”并设置比例百分比;留下另外两个下拉菜单“Do Nothing”。 如果可以,请选中“转换宽度太多”。

似乎有一个错误意味着“转换宽度太多”选项有时会被禁用。如果是这样,您需要在完成转换后手动调整“高级”宽度(“指标”>“设置宽度>缩放宽度依据”,并输入相同的百分比值)。

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

从设计师的角度来看,偶尔会有将不同尺寸的文本混合在一起的原因,但在这些情况下需要考虑使笔画宽度也能协同工作。大文本应该更轻/更薄,小文本更大胆。这与人们对using true small caps rather than just reducing the text size的观点相同。查看FontForge功能元素>样式>更改权重。