嵌入链接的SVG图像

fom*_*mil 8 svg inkscape

我有一个SVG文件,它引用了许多其他较小的SVG作为子图像.实际上,主SVG是定位所有其他SVG的模板.

我想创建一个我可以传递给人们的单个图像 - 即数据引用或仅内联包含 - 但运行inkscape Embed Images扩展会导致错误"图像不是PNG,JPEG等类型".

所以听起来像inkscape(v0.48.5)扩展只能实习位图图像,而不是SVG.游民.

我的图像是从主SVG这样引用的

<image id="PGDOWN_R1" x="1436.5"  y="280"  xlink:href="./symbols/PGDOWN_R3.svg"/>
Run Code Online (Sandbox Code Playgroud)

那么如何自动实习/嵌入我所有外部引用的SVG?(也欢迎非inkscape CLI选项)

Jam*_*ate 6

至少从inkscape 0.91开始,你可以extensions->images->Embed Images...很容易地做到这一点

  • 这对`svg`文件不起作用,至少对于0.91 r13725,因为脚本似乎只支持像素文件(对于svgs你得到`[yoursvgfile] .svg不是image/png,image/jpeg,image/bmp,image/gif,image/tiff或image/x-icon`) (3认同)
  • 这不适用于“SVG”图像,因此它不能回答问题。 (2认同)

fom*_*mil -2

我最终使用xmllint将带有句柄的 SVG 文件解析为包含引用文件的嵌入版本的文件,这并不完全是我的意思,但它适合我的目的: https: //gitlab.com/fommil/attic/blob/主/kinesis-dvorak/create.sh#L37

xmllint --xinclude picture.svg  > picture-embedded.svg
Run Code Online (Sandbox Code Playgroud)

  • 我希望你的脚本能告诉我如何使用“xmllint”将“svg_with_img_href.svg”转换为“standalone_everything_embedded.svg”。但是,“xmllint --xinclude svg_with_img_href.svg &gt;standalone.svg”对我不起作用。 (3认同)