#font #ufo #read-write #graphics

norad

读取和写入统一字体对象文件

22 个版本 (13 个破坏性版本)

0.14.1 2024年3月13日
0.14.0 2023年12月1日
0.13.0 2023年10月27日
0.10.2 2023年6月29日
0.0.1 2019年5月22日

#164 in 文本处理

Download history 86/week @ 2024-04-08 112/week @ 2024-04-15 52/week @ 2024-04-22 138/week @ 2024-04-29 432/week @ 2024-05-06 335/week @ 2024-05-13 271/week @ 2024-05-20 143/week @ 2024-05-27 71/week @ 2024-06-03 15/week @ 2024-06-10 40/week @ 2024-06-17 75/week @ 2024-06-24 52/week @ 2024-07-01 68/week @ 2024-07-08 247/week @ 2024-07-15 165/week @ 2024-07-22

532 每月下载次数
用于 6 个包 (5 直接)

MIT/Apache

435KB
9K SLoC

诺拉德

一个用于处理统一字体对象文件(UFO)的Rust包。

一个用于读取、写入和操作统一字体对象文件(UFO)的包,这是一种常见的字体设计格式。


lib.rs:

用于处理统一字体对象文件(UFO)的实用程序。

此包中的类型对应于规范中描述的类型。

基本用法

使用类似于这样的结构体 Font 实例化一个UFO字体对象

use norad::Font;

let inpath = "RoflsExtraDim.ufo";
let mut font_obj = Font::load(inpath).expect("failed to load font");

可以使用API访问和修改 Font 中的数据

 # use norad::Font;
 # let inpath = "RoflsExtraDim.ufo";
 # let mut font_obj = Font::load(inpath).expect("failed to load font");
 let layer = font_obj.default_layer();
 let glyph_a = layer.get_glyph("A").expect("missing glyph");
 assert_eq!(glyph_a.name().as_ref(), "A");
 # let outpath = "RoflsSemiDim.ufo";
 # font_obj.save(outpath);

使用 Font::save 方法将 Font 序列化到磁盘上的UFO文件

 # use norad::Font;
 # let inpath = "RoflsExtraDim.ufo";
 # let mut font_obj = Font::load(inpath).expect("failed to load font");
 # let layer = font_obj.default_layer();
 # let glyph_a = layer.get_glyph("A").expect("missing glyph");
 # assert_eq!(glyph_a.name().as_ref(), "A");
 let outpath = "RoflsSemiDim.ufo";
 font_obj.save(outpath);

有关更多源代码示例,请参阅源代码库中的 examples 目录

API 文档

有关使用UFO字体操作完整API的详细信息,请参阅这些文档。

许可证

诺拉德在 MITApache v2.0 许可证下发布。

源代码

源代码文件可在 https://github.com/linebender/norad 找到。

依赖项

~4–5.5MB
~95K SLoC