如何将大型SVG文件转换为平铺PNG?

Rob*_*ert 6 php linux svg imagemagick rsvg

我有一个大的SVG文件(大约60 MB,10000x10000像素但有可能变大),我想要创建许多平铺的256x256 PNG图像(在这个例子中会有1600个图像) ;圆形(10000/256)^ 2).

有没有人知道如何在Web服务器上执行此操作(运行PHP等)?我想过rsvg,但它似乎没有任何功能来修改边界框(我宁愿避免为每个部分手动操作).ImageMagick也许可以做到,但我没有太多运气让它运转起来.使用rsvg创建一个大的PNG,然后使用专用于拼贴非常大的图像的工具可能会有效,但我没有运气找到这样的东西!速度并不是一个真正的问题,虽然它是可取的,所以如果最坏的情况发生,我可能会考虑修改SVG的每个部分的边界框.不过,我可以看到这一代人永远在走!

有谁知道这样做的任何方法?

编辑2016-03-02:

我最近再次回到需要这个问题的答案,并且Inkscape似乎是唯一能够以给定大小呈现特定区域的SVG的工具(svgexport几乎满足这些要求,但它不允许您更改宽高比) .

我的目标是将SVG平铺到256x256磁贴中,现在我已经成功制作了一个脚本,可以通过重复渲染inkscape大约16,000 x 16,000并平铺生成的图像来平铺任意大的SVG .我已成功渲染尺寸超过500,000 x 500,000像素的SVG - 内存使用没有问题(这需要很长时间!)

sec*_*ond 9

inkscape有一个命令行模式来导出pngs,带一个可选参数来选择要导出的区域

inkscape vector.svg --export-png=raster.png --export-area=0:0:100:100
Run Code Online (Sandbox Code Playgroud)