Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于展平SVG嵌套转换的工具_Svg_Nested_Transformation_Flatten - Fatal编程技术网

用于展平SVG嵌套转换的工具

用于展平SVG嵌套转换的工具,svg,nested,transformation,flatten,Svg,Nested,Transformation,Flatten,我想知道是否有任何命令行工具可用于在SVG中通过转换展平嵌套组 在我的特殊情况下,我将把一个CAD软件生成的PDF转换为SVG,然后添加一些元素,并将修改后的SVG发布到一个网页上以供查看。SVG的响应时间非常缓慢(用于平移和缩放),我发现这是由于SVG中有大量嵌套组,通常高达数百个深度。对于SVG中的每个元素,浏览器需要计算其所有父节点的位置 显然这是荒谬的,因为所有这些元素只需要一个变换(矩阵)。因此,我想知道是否有人知道一个工具可以将其扁平化(或者一个C#或Delphi实现可以这样做…)

我想知道是否有任何命令行工具可用于在SVG中通过转换展平嵌套组

在我的特殊情况下,我将把一个CAD软件生成的PDF转换为SVG,然后添加一些元素,并将修改后的SVG发布到一个网页上以供查看。SVG的响应时间非常缓慢(用于平移和缩放),我发现这是由于SVG中有大量嵌套组,通常高达数百个深度。对于SVG中的每个元素,浏览器需要计算其所有父节点的位置

显然这是荒谬的,因为所有这些元素只需要一个变换(矩阵)。因此,我想知道是否有人知道一个工具可以将其扁平化(或者一个C#或Delphi实现可以这样做…)

你可以和我一起去。不幸的是,这是一个GUI工具,因此它并不真正适合您的需求,但它提供了一种批处理原理,可能会变得有用。

谢谢Delapouite


同时我发现了这个:()。它在将结构扁平化(PDF到PDF)方面做得非常好,但是生成的SVG中仍然有很多元素,这使得它对于浏览器来说非常不可用。这确实是CAD系统生成PDF的问题:有很多非常小的路径,而不是一条更长的路径。我很确定还有优化的空间。。。一天:-)

在Inkscape图形编辑器中有一个展平变换的选项。

因此,您可以使用Inkscape终端命令来实现它,但您必须查看是否存在这样的命令。

我发现最好的是svgo,但它仍然不令人满意。SVGO的目标是生成一个更小的svg文件。这意味着,如果转换允许使用较小的svg文件,则会保留该文件。我的目的与OP相似,但略有不同。我正在寻找一种可以将SVG简化为基本路径和元素的工具。

不幸的是,SVG cleaner并没有做到这一点。我真希望有一个现成的工具来消除所有这些胡说八道,比如
你有没有找到一个合适的解决方案?@TomHall:除了PStill,没有任何解决方案。我认为,对于任何代码来说,将许多多段线(路径)转换为更简单的形状都可能过于复杂。到目前为止,我发现的最佳选择是在将其保存为“优化PDF”时使用Adobe PDF中的“展平表单字段”选项(它是“放弃对象”的一部分)。这至少会删除嵌套,即使它不一定会减少对象的数量。Inkscape似乎可以完成这项工作(至少在GUI中),但它的功能非常有限:我需要选择所有对象,然后将其解组,然后重新选择并解组,然后重复,直到我确定没有其他组需要取消分组。每次这样做都需要一定的处理时间,因此这将成为一个相当乏味的过程。基于svgo的构建允许这样做-尝试转换
我得到
。。。很可能是通过命令行SVGO实现的。