Pythonを使用してSVGファイルを解析して、座標/パスを抽出したいと考えています(これは「パス」IDの下に表示されています(具体的にはd = "..." />)。このデータは最終的に2軸CNCの駆動に使用されます。Python SVGパーサー
このようなパスの文字列を返すことができるライブラリをSOとGoogleで検索しました。これをさらに解析することはできますが、役に立たなくなりました。そのようなライブラリは存在しますか?トランスフォームを無視
Pythonを使用してSVGファイルを解析して、座標/パスを抽出したいと考えています(これは「パス」IDの下に表示されています(具体的にはd = "..." />)。このデータは最終的に2軸CNCの駆動に使用されます。Python SVGパーサー
このようなパスの文字列を返すことができるライブラリをSOとGoogleで検索しました。これをさらに解析することはできますが、役に立たなくなりました。そのようなライブラリは存在しますか?トランスフォームを無視
、あなたはそうのようなSVGからパス文字列を抽出することができます:D-文字列を取得する
from xml.dom import minidom
doc = minidom.parse(svg_file) # parseString also exists
path_strings = [path.getAttribute('d') for path
in doc.getElementsByTagName('path')]
doc.unlink()
はsvgpathtoolsを使用して行または2で行うことができます。パス
from svgpathtools import svg2paths
paths, attributes = svg2paths('some_svg_file.svg')
は(ちょうどカーブ情報、ない色、スタイルなどを含む)svgpathtoolsパスオブジェクトのリストです。 属性は、各パスの属性を格納する対応する辞書オブジェクトのリストです。
は、たとえば、
for k, v in enumerate(attributes):
print v['d'] # print d-string of k-th path in SVG
あなたは変換が重要な場合のための任意の提案を持っています...そして、D-文字列をプリントアウトするには? – Veech
@Veech:変換がある場合は、おそらく重要です。残念ながら、それらを処理するにはもっと多くのコードが必要です。 – icktoofay
ええ、私はそれを実現するようになった。私は[cjlanoのsvg repo](https://github.com/cjlano/svg)が(いくつかの変更を加えて)十分に良いことを発見しました。 – Veech