如何使用 Makefile 和 Inkscape 保存为“普通 SVG”

Ash*_*ngh 3 svg makefile image inkscape

在 make 文件中使用--verb=FileSave --verb=FileQuit将 SVG 保存为Inkscape SVG,其中包含大量 Inkscape 窗口查看信息。

我试图通过保存为纯 SVG来摆脱它,以减少文件大小,但似乎没有特定的VERB-ID来执行此操作。

我需要对脚本进行哪些修改,以便在生成 SVG 时消除 SVG 中的额外信息?

Ger*_*iro 7

--export-plain-svg只需使用inkscape 的选项来选择输出类型。

inkscape --export-plain-svg=output.svg input.svg
Run Code Online (Sandbox Code Playgroud)

查看其他选项:

inkscape --help
Run Code Online (Sandbox Code Playgroud)

此外,您可以使用以下工具优化 svg svgo

svgo output.svg
Run Code Online (Sandbox Code Playgroud)

完整场景:您有一个名为 svg 的文件road.svg,并且想要另一个名为 .svg 的文件road-plain.svg

示例 makefile:

%-plain.svg: %.svg
    inkscape --export-plain-svg=$@ $<
    svgo $@

all: road-plain.svg
Run Code Online (Sandbox Code Playgroud)

输出:

$ make all

inkscape --export-plain-svg=road-plain.svg road.svg
svgo road-plain.svg

road-plain.svg:
Done in 101 ms!
3.102 KiB - 49.4% = 1.57 KiB
Run Code Online (Sandbox Code Playgroud)

生成一个简单且优化的 svg 文件!

  • 由于这是为 Inkscape 查找“export-plain-svg”的第一个结果,因此我将在此发布:在 Inkscape 1.0.2 中,上述命令将引发“警告:选项 --export-plain-svg=已弃用`";更改后的命令现在应该是: `inkscape "$MYFILE" --export-plain-svg --export-type=svg --export-filename=temp` - 但不是 `.svg` 会自动附加到输出中文件名(如果尚未存在)! (4认同)