是否可以在通过 librsvg 获取其像素缓冲区之前缩放 svg?我可以看到类似 rsvg_pixbuf_from_file_at_zoom 的 API,但它被标记为已弃用。
还有其他方法吗?如果可能的话,我想避免为此使用 cairo。
最佳答案
你没有太多选择,它是:
- 使用像 rsvg_pixbuf_from_file_at_size() 这样的已弃用函数(这不是坏的,这个函数不太可能很快消失)
- 或使用 RsvgHandle 对象与 rsvg_handle_new_from_file() 和 rsvg_handle_render_cairo() 在 cairo 表面创建正确的维度
如果你想在最后使用 GdkPixbuf,你可以将 cairo 的使用限制在最低限度:
- 使用 rsvg_handle_new_from_file() 创建 RsvgHandle
- 创建 cairo 上下文并设置所需的转换矩阵
- 使用 rsvg_handle_render_cairo() 渲染 svg
- 使用 rsvg_handle_get_pixbuf() 获取 pixbuf
关于linux - 通过 librsvg 缩放矢量图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7540901/