跳转到主要内容

读取、写入和生成具有设计空间数据的UFO。

项目描述

PyPI

ufoProcessor

基于 fontTools.designspaceLib 的 Python 包,专门用于 处理生成 UFO 文件、字形和其他数据的实例。

UFOOperator 取代了 UfoProcessor

为了支持设计空间格式 5 文件,需要进行一些必要的深度修改。与其试图将其整合到不愿意的老代码中,UFOOperator 是从头开始重写的。新的对象 包装 了 FontTools DesignSpaceDocument 对象,而不是 继承 它。UFOOperator 的目标基本保持不变。尽管现在重点是提供提供实时插值的对象,而不是生成独立的 UFO。

  • 支持带层的设计空间格式 5,但并非所有设计空间 5 的元素都受到支持。
  • 收集源材料
  • 提供特定字形的突变器、字体信息、字距调整,以便其他工具可以生成部分实例。可以从 MutatorMathfonttools varlib.model 中获取。
  • 在数学模型中支持各向异性位置,即使可变字体不支持也是如此。在设计过程中这些非常有用,因此我需要它们能够工作。
  • 在数学模型中支持外推,即使可变字体不支持也是如此。请注意,MutatorMath 和 VarLib 对外推的处理方式不同。这在设计探索中非常有用。
  • 支持离散轴。这有点复杂,但工作起来很好。
  • 应用 avar 类似的设计空间弯曲
  • 以格式 3 生成实际的 UFO 实例。
  • 按需进行几何形状的四舍五入
  • 努力与 fontTools 保持同步
  • 需要访问设计空间数据的工具的基类。
  • 对 MutatorMath 和 Varlib 风格的突变器进行一些缓存。

不再使用规则

UFOProcessor 在生成 UFO 时可以执行 一些 特征变化规则。但这些变化已经变得比用简单的字形交换来伪造要复杂得多。因此,我没有将其移植到 UFOOperator。使用 UFOOperator 生成的 UFO 将具有与源相同的所有字形的位置。

离散轴

离散轴 是将不同的插值系统拟合到单个设计空间中的方法。例如,罗马体 可以在 italic=0,而 斜体italic=1。罗马体和斜体在同一个文件中,但对于 UFOOperator 来说,它们是独立的系统,沿着正常轴进行插值。如果设计空间中有多个离散轴,则每个轴值的组合,每个 离散位置 都可以是一个插值系统。因此,UFOOperator 的一些方法需要 离散位置 来知道需要哪个插值系统。

示例 UFOProcessor (旧)

生成所有实例(使用 varlib 模型,不进行四舍五入)

import ufoProcessor
myPath = "myDesignspace.designspace"
ufoProcessor.build(myPath)

生成所有实例(使用 varlib 模型,但将所有几何形状四舍五入到整数)

import ufoProcessor
myPath = "myDesignspace.designspace"
ufoProcessor.build(myPath, roundGeometry=True)

生成所有实例(使用 mutatormath 模型,不进行四舍五入)

import ufoProcessor
myPath = "myDesignspace.designspace"
ufoProcessor.build(myPath, useVarlib=False)

为单个字形生成一个实例,"A"width=100, weight=200。 (假设设计空间有这些轴,并且主轴有该字形)

import ufoProcessor
myPath = "myDesignspace.designspace"
doc = ufoProcessor.DesignSpaceProcessor()
doc.read(myPath)
doc.loadFonts()
glyphMutator = doc.getGlyphMutator("A")
instance = glyphMutator.makeInstance(Location(width=100, weight=200)

根据 usevarlib 的设置,上述示例中 getGlyphMutator 返回的 glyphMutator 对象可以是 MutatorMath.MutatorVariationModelMutator 对象。它使用 fontTools.varLib.models.VariationModel,但它被包装,并可以作为突变器对象调用以生成实例。这样,DesignSpaceProcessor 就不需要了解太多它正在使用哪种数学模型。

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分发

ufoprocessor-1.13.1.tar.gz (120.8 kB 查看哈希值)

上传时间 源代码

构建分发

ufoProcessor-1.13.1-py2.py3-none-any.whl (35.7 kB 查看哈希值)

上传时间 Python 2 Python 3

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面