gpt4 book ai didi

svg - rsvg 不渲染链接图像

转载 作者:行者123 更新时间:2023-12-03 04:52:34 25 4
gpt4 key购买 nike

我使用 python rsvg 绑定(bind)将 svg 图像渲染到 cairo 中并保存到文件,这基本上可以工作。但如果 svg 文件包含链接图像,如下所示:

<image href="static/usrimgs/tmpDtIKpx.png" x="10" y="10" width="600px" height="400px"></image>

图像没有出现在最终文件中(svg 的其余部分渲染得很好)。根据脚本运行的位置,相对路径是正确的,但我猜测它通常是相对 URL,而不是相对文件路径,这一事实存在一些问题。我该如何解决这个问题?

最佳答案

LibRsvg 必须满足许多因素才能允许加载图像资源。从 v2.40 开始,这些包括:

  • 图像必须具有 xlink:href 属性
  • 该属性必须包含完整、有效的 URI
  • 方案可以是 data://file://
  • file:// 路径必须是绝对路径
  • file:// 路径必须位于 SVG 源文件的路径中或之下(在取消引用任何符号链接(symbolic link)之后)

请注意,如果输入通过 stdin 传递到 rsvg-convert,则没有路径算作输入文件的子目录,并且所有 file:// 图像都将被拒绝.

rsvg-convert < input.svg > output.png  # images denied

rsvg-convert -o output.png input.svg # images allowed

控制图像 URL 解析的代码可以在 LibRsvg source 中找到。在rsvg-base.c中,函数_rsvg_handle_allow_load

要在图像加载失败时向 rsvg-convert 添加调试通知,可以附加

#define G_ENABLE_DEBUG

到源代码中的config.h并重新编译。

关于svg - rsvg 不渲染链接图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2961624/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com