如何转换的svg到png,在Python?我将储存svg在的实例中StringIO。我应该使用pyCairo库吗?如何编写该代码?
svg
png
StringIO
答案是“ pyrsvg ” -一个Python绑定的librsvg。
有一个提供它的Ubuntu python-rsvg软件包。在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。上面的摘录清单仍按原样工作。
gnome-python2-rsvg