2017-01-25 23 views
0

我有一个SVG图像文件夹,我在看我如何能够将SVG的每个图层(组)都保存到单独的PNG文件中。我在Matlab中工作,但我还没有看到任何适用于SVG的方法。我查看了一些外部库,Batik是主要的库,但我不知道有足够的XML来实现这个功能。我也看了Inkscape,但它的export options似乎只允许你使用整个光栅化图像。我也看了一下ImageMagick,但只发现了一个图层方法,它似乎制作了GIF,而不是我想要从SVG获得的图层。批量导出和取消将每个图层/组的SVG分组到PNG

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

+0

确实[这](http://superuser.com/questions/260047/batch-convert-svg-images-to-desired-size-png-or-ico)问题的帮助吗? –

+0

@ ParagS.Chandakkar谢谢,它确实帮助了我尝试将单个图层转换为PNG的问题。但我仍然坚持问题的其他部分(我在更新部分添加了一些说明)。 –

回答

0

你可以在一个多层文件获得“场景”(又名层)的数量与ImageMagick的这样的:

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

另外,如果您运行下面的命令,它会给尺寸和色彩空间,而每一层的类型,每路输出的线路一层(所以计数层数线):

identify image.svg 

我不认为你会有多大的成功处理群体 - 尽管我没有尝试过自己的I没有任何多层SVGs躺在身边 - 因为ImageMagick的主要是一个光栅图像编辑器,它“外包”(或ImageMagick的的说法,它“代表”)的矢量处理,以librsvg

您可能会在this Github code上获得一些成功。

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