通过librsvg缩放矢量图像

时间:2011-09-24 18:09:46

标签: linux svg vector-graphics librsvg

在通过librsvg获取像素缓冲区之前是否可以缩放svg?我可以看到像rsvg_pixbuf_from_file_at_zoom这样的API,但它被标记为已弃用。

还有其他方法吗?如果可能的话,我想避免使用cairo。

1 个答案:

答案 0 :(得分:4)

你没有太多选择,它是:

  • 使用一个不推荐使用的函数,比如rsvg_pixbuf_from_file_at_size()( 不好,这个函数不太可能很快就会消失)
  • 或在cairo曲面上使用rsvg_handle_new_from_file()和rsvg_handle_render_cairo()的RsvgHandle对象创建正确的维度

如果你想在最后使用GdkPixbuf,你可以将cairo的使用限制在最低限度:

  • 使用rsvg_handle_new_from_file()创建RsvgHandle
  • 创建一个cairo上下文并设置你想要的转换矩阵
  • 使用rsvg_handle_render_cairo()
  • 渲染svg
  • 使用rsvg_handle_get_pixbuf()
  • 抓住pixbuf