3

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

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

4

1 回答 1

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
于 2011-09-25T05:16:30.430 回答