读取、写入和生成具有设计空间数据的UFO。
项目描述
ufoProcessor
基于 fontTools.designspaceLib 的 Python 包,专门用于 处理 和 生成 UFO 文件、字形和其他数据的实例。
UFOOperator 取代了 UfoProcessor
为了支持设计空间格式 5 文件,需要进行一些必要的深度修改。与其试图将其整合到不愿意的老代码中,UFOOperator 是从头开始重写的。新的对象 包装 了 FontTools DesignSpaceDocument 对象,而不是 继承 它。UFOOperator 的目标基本保持不变。尽管现在重点是提供提供实时插值的对象,而不是生成独立的 UFO。
- 支持带层的设计空间格式 5,但并非所有设计空间 5 的元素都受到支持。
- 收集源材料
- 提供特定字形的突变器、字体信息、字距调整,以便其他工具可以生成部分实例。可以从
MutatorMath
或fonttools 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.Mutator
或 VariationModelMutator
对象。它使用 fontTools.varLib.models.VariationModel
,但它被包装,并可以作为突变器对象调用以生成实例。这样,DesignSpaceProcessor
就不需要了解太多它正在使用哪种数学模型。
项目详情
ufoprocessor-1.13.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d7c4a7009ca37e0e4cb692d6e2e138a578bd8d62efbc6fd2e4ad077d4a3aac91 |
|
MD5 | 00470f5fe2634a33f95ad3bd7c1f6f1a |
|
BLAKE2b-256 | fe80b206361ca915519803a90acfb066d2ae5970cc871b0cebba8a7ff28e3a1d |
ufoProcessor-1.13.1-py2.py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | afe66811a2fa986eb59f9f7bb6678f52daeed263aeef4cf43241800168b637fd |
|
MD5 | 4b396cca08e9d14147fbe03eabd521ee |
|
BLAKE2b-256 | 0d12bbca3b30198d8f492c8394a1f9c571830fe54982bde9b8a7f27d8ad0b902 |