#font #protobuf #sdf #generate #command-line-tool

app build_pbf_glyphs

一个CLI工具,用于从原始源字体生成protobuf编码的SDF字体符号

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次下载

BSD-3-Clause

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