如何在Python中将svg
转换为png
?我将svg
存储在StringIO
的实例中。我应该使用pyCairo库吗?如何编写该代码?
最佳答案
答案是“pyrsvg”-librsvg的Python绑定(bind)。
有一个提供它的Ubuntu python-rsvg package。在Google上搜索它的名字很糟糕,因为它的源代码似乎包含在“gnome-python-desktop” Gnome项目GIT存储库中。
我制作了一个极简的“hello world”,将SVG渲染为开罗
表面并将其写入磁盘:
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
。上面的摘录 list 仍按原样工作。