#svg #cli #converter

app svg2pts

将 SVG 转换为点列表的命令行工具

6 个版本

0.1.5 2020 年 3 月 5 日
0.1.4 2020 年 3 月 2 日
0.1.1 2020 年 2 月 29 日

#2221命令行工具

28 每月下载次数

MIT 许可证

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

Rust logo svg converted to pts and display on oscilloscope.

您可以在以下位置获取 pts2wavhttps://github.com/exrok/pts2wav

依赖关系

~3.5–5MB
~90K SLoC