批量导出 SVG 并将其取消分组为每个图层/组的 PNG



我有一个SVG图像文件夹,我正在研究如何将SVG的每个图层(组)保存到单独的PNG文件中。我在 Matlab 工作,但我还没有看到任何适用于 SVG 的方法。我查看了一些外部库,蜡染是主要的库,但我不知道足够的XML来让它工作。我也看了Inkscape,但它的导出选项似乎只允许您使用整个光栅化图像。我也看了ImageMagick,但只找到了一个似乎制作GIF的图层方法,而不是我想要的SVG图层。

更新:意识到我可以使用 ImageMagick 以这种方式保存图层 convert image.svg[1] output.png ,我仍然不知道 1) 如何在 SVG 中批量取消图层分组(它们肯定是不可分组的 - 我在 Illustrator 中检查过)和 2) 计算每个 SVG 中有多少图层,以便我可以遍历所有图层以单独保存它们。

您可以使用 ImageMagick 在多层文件中获取"场景"(又名图层)的数量,如下所示:

convert image.svg -ping -format '%n' info:

或者,如果您运行以下命令,它将给出尺寸和色彩空间以及每个图层的类型,每行输出一个图层(因此计算图层数的行数):

identify image.svg

我不认为你会在处理组方面取得多大成功 - 尽管我没有尝试过自己,因为我没有任何多层 SVG - 因为 ImageMagick 主要是一个光栅图像编辑器,它"外包"(或用 ImageMagick 的说法,它"委托")它的矢量处理到 librsvg

使用此 Github 代码可能会取得一些成功。

https://github.com/berteh/svg-objects-export

最新更新