3 回答
TA贡献1712条经验 获得超3个赞
答案是“ 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。上面的摘录清单仍按原样工作。
TA贡献1779条经验 获得超6个赞
安装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}
添加回答
举报