猿问

在Python中将SVG转换为PNG

如何转换的svgpng,在Python?我将储存svg在的实例中StringIO。我应该使用pyCairo库吗?如何编写该代码?



桃花长相依
浏览 2191回答 3
3回答

交互式爱情

答案是“ pyrsvg ” -一个Python绑定的librsvg。有一个提供它的Ubuntu python-rsvg软件包。在Google上搜索其名称很不方便,因为其源代码似乎包含在“ gnome-python-desktop” Gnome项目GIT存储库中。我制作了一个极简的“ hello world”,将SVG渲染到开罗表面并将其写入磁盘:import cairoimport rsvgimg = 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。上面的摘录清单仍按原样工作。

哆啦的时光机

安装Inkscape并将其作为命令行调用:${INKSCAPE_PATH} -z -f ${source_svg} -w ${width} -j -e ${dest_png}您也可以仅使用参数捕捉特定的矩形区域-j,例如,坐标“ 0:125:451:217”${INKSCAPE_PATH} -z -f ${source_svg} -w ${width} -j -a ${coordinates} -e ${dest_png}如果只想在SVG文件中显示一个对象,则可以使用-i已在SVG中设置的对象ID 来指定参数。它隐藏了其他所有内容。${INKSCAPE_PATH} -z -f ${source_svg} -w ${width} -i ${object} -j -a ${coordinates} -e ${dest_png}
随时随地看视频慕课网APP

相关分类

Python
我要回答