3 回答

TA貢獻1712條經(jīng)驗 獲得超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年開始,F(xiàn)edora Linux發(fā)行版所需的軟件包是:gnome-python2-rsvg。上面的摘錄清單仍按原樣工作。

TA貢獻1779條經(jīng)驗 獲得超6個贊
安裝Inkscape并將其作為命令行調(diào)用:
${INKSCAPE_PATH} -z -f ${source_svg} -w ${width} -j -e ${dest_png}
您也可以僅使用參數(shù)捕捉特定的矩形區(qū)域-j,例如,坐標“ 0:125:451:217”
${INKSCAPE_PATH} -z -f ${source_svg} -w ${width} -j -a ${coordinates} -e ${dest_png}
如果只想在SVG文件中顯示一個對象,則可以使用-i已在SVG中設(shè)置的對象ID 來指定參數(shù)。它隱藏了其他所有內(nèi)容。
${INKSCAPE_PATH} -z -f ${source_svg} -w ${width} -i ${object} -j -a ${coordinates} -e ${dest_png}
添加回答
舉報