8个稳定版本
1.4.2 | 2024年2月13日 |
---|---|
1.4.1 | 2023年7月15日 |
1.3.0 | 2023年3月3日 |
1.2.0 | 2022年9月5日 |
1.0.0 | 2021年2月18日 |
#104 in 数据格式
每月49次下载
195KB
391 行
Protobuf SDF 字体符号构建器
此二进制crate提供了一种CLI工具,用于批量将字体目录转换为签名距离场,以协议缓冲区格式编码,供Mapbox GL等渲染器使用。这并不真正有什么新颖之处;它只是pbf_font_tools的简单前端,类似于node-fontnik,但更快,且(据我们意见)更容易使用,因为它不依赖于node及其所有烦恼,或需要从头构建的C++库(这依赖于FreeType,但几乎在所有基于*nix的系统上都广泛可用)。
有关此工具的工作原理的更多技术细节,请参阅sdf_glyph_renderer。
注意:此工具要求您在系统上安装FreeType。我们建议使用FreeType 2.10或更新版本。对于许多旧的2.x版本仍然可以正常工作,但符号生成随着时间的推移会改进,所以通常使用较新版本会更好。
用法
此工具将在必要时创建out_dir
,并将每个范围(256个符号,与MapLibre/Mapbox字体堆栈约定兼容)放入以字体名称命名的子目录中。
您可以从crates.io安装已发布的版本,或者通过运行以下命令获取最新git版本:cargo install build_pbf_glyphs
。
$ build_pbf_glyphs /path/to/font_dir /path/to/out_dir
覆盖现有字体
默认情况下,现有字体将不会被覆盖,因为这通常是一种浪费CPU的行为。您可以通过添加--overwrite
标志来更改此设置。
预先组合字体
对于某些应用程序,可能需要在预先组合字体。虽然从计算角度来看这是一个廉价的操作,但如果您希望保持服务器逻辑简单,这可能很方便。如果您只使用列表中的一个字体,简单的静态文件服务目录即可满足需求。
此工具可以使用-c <spec.json>
命令行选项为您预先组合字体。该文件应包含一个类似于以下格式的JSON字典
{
"New Font Name": ["Font 1", "Font 2"]
}
这将在所有字体生成后作为一个独立的步骤运行,因此假设所有字体在out_dir
中已有有效的字体。
依赖关系
~13–18MB
~310K SLoC