我有一张SVG图纸(来自建筑物地图),我希望将整个文档顺时针旋转90度。现在,绘图方向是纵向,想法是横向。
除此之外,我想扩展整个文档(包括所有元素)。
目前,我无法在网上找到这样做的可能性。所以这就是我要问的原因。我的问题是:
答案 0 :(得分:6)
我设法用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')
请注意,必须在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')