gpt4 book ai didi

python - 在 Python 中使用自定义字体将 SVG 转为 PNG

转载 作者:行者123 更新时间:2023-11-28 17:52:24 26 4
gpt4 key购买 nike

我正在使用基于 Cairo/RSVG 的解决方案将 SVG 栅格化为 PNG。已经在 StackOverflow 上描述了 Convert SVG to PNG in Python .但是,此解决方案似乎不适用于自定义字体。

我找到了 this page describing embedding SVG fonts .

我已尝试通过 XLink 从外部 SVG 中包含它们,如示例中所述。我试过将字体直接嵌入同一个 SVG 文件中。失败后,我尝试了 CSS Web Fonts 语法。使用 Cairo 渲染时,这 3 种方法都不起作用(在 Ubuntu 的默认查看器 Eye of GNOME 中也不起作用)。

我试过 ImageMagick,结果与 Cairo 完全相同。

另一方面,对于所有 3 种字体嵌入方法,字体在 WebKit 中都可以很好地呈现,无论是使用 Google Chrome 还是 webkit2png.py .但是,如果可能的话,我想避免在服务器上使用 QT WebKit,因为它是非常重要的设置(包括 xvfb 等),而且我担心这可能不会非常有效或稳定。

有没有其他方法可以从 Python 将 SVG 渲染为 PNG?

最佳答案

我花了一周时间研究这个问题并得出结论,处理服务器端渲染/光栅化 SVG 和自定义字体的最佳方法是在服务器上安装这些字体。我试过的工具(rsvg、imagemagick、phantomjs、qtwebkit...)无法处理网络字体和 svg 字体。

Google 有 several hundred fonts (并且不断增长)人们可以在服务器上下载和使用。

  • 下载OTF或TTF字体
  • 在服务器上安装它们并刷新字体缓存
  • 用您的 SVG 文档中的字体系列名称替换外部字体的 CSS 定义。

如果您还需要在网页中使用这些相同的字体,您可以直接链接到 Google CDN 以获取 WOFF 文件,以节省您自己的服务器时间和网络带宽。

关于python - 在 Python 中使用自定义字体将 SVG 转为 PNG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7321113/

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