6 个版本
0.1.5 | 2020 年 3 月 5 日 |
---|---|
0.1.4 | 2020 年 3 月 2 日 |
0.1.1 | 2020 年 2 月 29 日 |
#2221 在 命令行工具
28 每月下载次数
17KB
316 行
svg2pts
命令行工具,用于将 SVG 中的路径转换为点列表。所有 SVG 路径都转换为点列表,曲线插值由命令行参数控制。没有描边和填充的路径将被忽略。输出为点的序列,X Y\n
安装
使用 snaps
snap install svg2pts
使用 cargo
cargo install svg2pts
启用文本功能后,需要 harfbuzz,
cargo install svg2pts --features=text
这将使 svg2pts 二进制文件在您的 cargo 二进制目录中可用;通常是 ~/.cargo/bin
。
用法
svg2pts 0.1.5
Converts all paths in a svg to a list of points. Paths
with no stroke nor fill are ignored. Output is a sequence of points, `X Y\n`.
USAGE:
svg2pts [OPTIONS] [ <input> [<output>] ]
FLAGS:
-h, --help Prints help information
OPTIONS:
-a, --accuracy <accuracy> Set tolerance threshold for bezier curve approximation,
lower -> higher quality [default: min(<distance>/25.0,0.05)]
-d, --distance <distance> Set target distance between points, depends on DPI of SVG.
If distance == 0.0 point distance not normalized.
[default: 0.0]
ARGS:
<input> Input SVG file, stdin if not present
<output> Output file, stdout if not present"#
变更日志
- v0.1.5
- 修复:命令行参数、输出文件错误。
- 变更:降低容忍度阈值以提高默认精度,并降低距离阈值以处理小距离。
- v0.1.4
- 使文本支持成为可选功能,使 harfbuzz 依赖成为可选。
- v0.1.3
- 改进的距离归一化:生成的点在不同距离参数下更准确地遵循 SVG 中的路径。
- 隐藏路径移除:在生成点时忽略没有描边和填充值的路径。
- v0.1.2
- 现在应用转换:之前忽略路径转换。
示例
$ svg2pts -d 3.5 media/rust.svg
71.05 120.32
67.5572042727889 120.0955495422685
64.09895790373652 119.5565392910338
60.64071153468416 119.0175290397991
57.283778022261004 118.02707591462337
...
$ svg2pts -d 3.5 media/rust.svg | gnuplot -p -e 'plot "<cat"'
#graphs below
SVG 转换为距离 1.5 的点
SVG 转换为距离 3.5 的点
SVG 转换为没有归一化距离的点
SVG 转换为没有归一化距离且精度较低(简化)的点
将 SVG 转换为点,然后在示波器上显示
svg2pts -d 3.5 rust.svg | pts2wav > logo.wav
您可以在以下位置获取 pts2wav
: https://github.com/exrok/pts2wav
依赖关系
~3.5–5MB
~90K SLoC