2作者: olliewagner4 个月前
在进行自主设计时,我经常需要用到 SF Symbols 的“复制图像为…”功能,因此我制作了一个命令行工具,供代理程序自行使用。它可以将 Apple SF Symbols 导出为 SVG、PDF 或 PNG 格式。 矢量路径直接来自 macOS 的符号渲染器。它内部会访问 NSSymbolImageRep 上的一个私有实例变量,以获取 CUINamedVectorGlyph,然后绘制到 CGPDFContext 中,再将 PDF 内容流转换为 SVG 的 `d` 命令。输出结果与系统绘制的图形完全一致,而不是从光栅图像描摹出来的近似值。 关于这个工具的几点说明: * 每个子命令都接受 `--json` 参数,并且 `sfsym schema` 命令会返回整个 CLI 的机器可读描述。 * 符号枚举会读取操作系统的 Assets.car BOM 树,因此 8300 多个符号的列表会随着 macOS 的更新而保持同步,而无需在二进制文件中维护版本表。 * 每个 SVG 的 `<path>` 标签都带有 `data-layer` 属性,因此您可以在 CSS 中重新设置主题,而无需修改几何图形。 这个工具为我节省了大量点击操作。如果您有其他想法,请告诉我。