2017-04-04 59 views
1

ビルディングマップからSVG図面を取得しました。完全なドキュメントを時計回りに90度回転したいと思います。さて、図面の向きはポートレートです。その考え方は横長の向きです。Pythonを使用して完全な.SVGドキュメントを回転させてスケーリングする

この他に、完全なドキュメント(すべての要素を含む)を拡大したいと思います。

今のところ、私はウェブ上でこれを行うための可能性を見つけることができませんでした。だからこそ私は外に尋ねています。私の質問は:

  1. 可能ですか?
  2. 「はい」の場合、これはどのように実行できますか?誰がこの問題に協力したいのですか?
+0

は回転/スケールはSVG –

+0

@RobertLongsonに変換を適用します。これには標準的なプログラムルールがありますか? –

+0

私は彼がブラウザでCSSを変換することについてこれについて話していると思います。しかし、私があなたを正しく理解していれば、これはあなたが望むものではありません。おそらく、このモジュールhttps://github.com/btel/svg_utils –

答えて

2

svgutilsモジュールでSVG図を回転することができました。それはピップでインストールすることができます。

>>> 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') 

widthheight属性がsvgタグ

Reference I used

で元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') 
関連する問題