我有一张SVG图纸(来自建筑物地图),我想将整个文件顺时针旋转90度.现在,绘图方向是纵向,想法是横向方向.
除此之外,我想扩展完整的文档(包括所有元素).
目前,我无法在网上找到这样做的可能性.所以这就是我要问的原因.我的问题是:
我设法用svgutils模块旋转SVG图.它可以用pip安装.
>>> import svgutils
>>> svg = svgutils.transform.fromfile('camera.svg')
>>> originalSVG = svgutils.compose.SVG('camera.svg')
>>> originalSVG.rotate(90)
>>> originalSVG.move(svg.height, 10)
<svgutils.compose.SVG object at 0x7f11dc78fb10>
>>> figure = svgutils.compose.Figure(svg.height, svg.width, originalSVG)
>>> figure.save('svgNew.svg')
Run Code Online (Sandbox Code Playgroud)
请注意,必须在标记中的原始svg文件中指定width和height属性svg
实际上,这个方法没有对元素做任何事情,除了g用transform属性标记包装它们.但似乎使用此模块,您可以访问SVG树中的每个元素,并使用它们执行任何操作.
扩展SVG也很容易:
>>> originalSVG.scale(2)
<svgutils.compose.SVG object at 0x7f11dc78fb10>
>>> figure = svgutils.compose.Figure(float(svg.height) * 2, float(svg.width) * 2, originalSVG)
>>> figure.save('svgNew.svg')
Run Code Online (Sandbox Code Playgroud)