XuM*_*MuK 6 python svg rendering
问题很简单,但是我google了很多方法,都没有这样的解决方案:
import svg-render-library
figure = svg-render-library.open('test.svg')
figure.render()
Run Code Online (Sandbox Code Playgroud)
有没有只使用 python 库显示 SVG 图像的简单方法?我问的是渲染 SVG 图像而不需要任何转换为其他格式,并使用纯 python 渲染,而不需要任何第三方软件。正如我所尝试的,目前这似乎是不可能的。
作为内置 python,我的意思是 - 只有通过 pip 可用的 python 包,因此不需要安装/编译其他任何东西。为了渲染,我的意思是在窗口内显示Python的哪一部分,而不是浏览器或任何外部软件。
小智 1
目前,还没有方法可以仅使用标准库来呈现本机跨平台(即,某些 OSX 的 python 发行版tkinter默认情况下不包含)。因此,没有什么好的方法可以做到这一点。
AFAIK,没有其他方法可以在不编写自己的代码或使用非标准库模块的情况下维护您所描述的 API。
如果您仍然 100% 决定使用纯 python 和标准库来完成此操作,并且您拥有 tkinter,并且不关心编写自己的实现,那么请继续。
如果您正在讨论在窗口中显示 SVG 的上下文中进行渲染,那么最好的选择是使用tkinter和xml模块。
SVG 只是一个 XML 文件,因此xml.minidom应该能够解析 svg 文件。然后,您可以从 dom 中提取高度和宽度,将每个元素绘制到tkinter.Canvas小部件上,然后tkinter渲染窗口。您需要预先计算透明度或在管理分层时处理它。
另一种选择是使用turtle包裹的包tkinter。如果 SVG 只是一条路径,那么这应该能够相当直接地绘制该路径。
如果您愿意接触标准库之外的内容,那么cairosvg或svglib两者都可以轻松处理此任务。cairosvg如果你不习惯安装系统库的话,有点麻烦,但它svglib是一个纯Python实现。
| 归档时间: |
|
| 查看次数: |
360 次 |
| 最近记录: |