1. ホーム
  2. python

[解決済み] PythonでSVGからPNGに変換する

2022-07-03 15:49:53

質問

の変換はどのように行うのですか? svgpng というように、Pythonで?私は svg のインスタンスに StringIO . pyCairo ライブラリを使うべきですか?そのコードはどのように書けばいいのでしょうか?

どのように解決するのですか?

答えは、"です。 pyrsvg の Python バインディングです。 librsvg .

Ubuntuには python-rsvgパッケージ が提供されています。そのソースコードは Gnome プロジェクトの GIT リポジトリに含まれているようなので、その名前を Google で検索するのは難しいです。

私は、SVG を cairo の表面にレンダリングしてディスクに書き込む、最小限の "hello world" を作りました。 表面にレンダリングし、ディスクに書き出します。

import cairo
import rsvg

img = cairo.ImageSurface(cairo.FORMAT_ARGB32, 640,480)

ctx = cairo.Context(img)

## handle = rsvg.Handle(<svg filename>)
# or, for in memory SVG data:
handle= rsvg.Handle(None, str(<svg data>))

handle.render_cairo(ctx)

img.write_to_png("svg.png")

更新 : 2014年現在、Fedora Linuxディストリビューションに必要なパッケージは以下の通りです。 gnome-python2-rsvg . 上記のスニペットリストは、そのままでも動作します。