3 回答

TA貢獻(xiàn)1712條經(jīng)驗(yàn) 獲得超3個(gè)贊
答案是“ pyrsvg ” -一個(gè)Python綁定的librsvg。
有一個(gè)提供它的Ubuntu python-rsvg軟件包。在Google上搜索其名稱很不方便,因?yàn)槠湓创a似乎包含在“ gnome-python-desktop” Gnome項(xiàng)目GIT存儲(chǔ)庫(kù)中。
我制作了一個(gè)極簡(jiǎn)的“ hello world”,將SVG渲染到開(kāi)羅表面并將其寫(xiě)入磁盤:
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年開(kāi)始,F(xiàn)edora Linux發(fā)行版所需的軟件包是:gnome-python2-rsvg。上面的摘錄清單仍按原樣工作。

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