如何在Linux上的窗口中显示交互式SVG?

问题描述:

我真的很喜欢SVG,用它绘制非常好。到目前为止,我已经使用Inkscape制作了静态图像。我想让他们互动。如何在Linux上的窗口中显示交互式SVG?

我做了一些试验,按照this one之类的教程进行。但是我可以看到一个SVG并仅在我的Web浏览器中与它进行交互。我想在桌面上的窗口中制作这些东西。 有像开罗或OpenGL的绘图工具包,但我必须从代​​码绘制。使用SVG(使用Inkscape绘制)似乎更聪明一些。

在简洁的桌面窗口/画布中查看交互式/动画SVG需要什么?我已经看到一些模块将SVG转换为开罗:但是有没有一种直接用于Linux的SVG解释器?

+0

OpenGL只是一个绘图API,即一系列功能可以告诉您的图形系统在屏幕上绘制三角形和其他类型的低级别东西。 OpenGL不是绘图工具包(你可以称之为这些场景图)。只需要这样说。在SVG的情况下:通过组合SVG解析器(libsvg),一些矢量渲染系统(Cairo),DOM和JavaScript引擎,您可以获得交互式SVG。但是这是一个相当大的实施。 – datenwolf 2011-05-31 14:22:41

+0

感谢您的精确。你认为什么是制作+显示交互式矢量图形的最佳方式?从代码生成图像的想法只会让我失望。我希望SVG拥有一个与Flash/Air相当的GPL。 – Benjamin 2011-05-31 14:53:51

+0

在日常应用中生成图像代码确实是一个糟糕的主意。 SVG是以开放格式表示矢量图像的事实标准。但是,由于它来自W3C,因此设计时考虑了DOM基础结构。所以我提出了一些不同的建议,最初可能会推迟:将图片表示为代码,但不是硬编码到程序中,而是以一种易于整合的解释器的脚本语言。在定义图片的同一个脚本中,您还可以添加交互功能。我认为好的候选人是松鼠,Lua和V8口译员。 – datenwolf 2011-05-31 15:14:08

问题是,效果需要JavaScript和级联样式表,这基本上意味着完整的Web渲染引擎。所以最简单的方法是使用webkit或gecko(现在webkit可能对SVG有更好的支持,再加上我现在找不到gecko软件包)。

+0

哈谢谢。那么这是否意味着Webkit将提供解释器和画布来显示SVG?我已经看到[这篇关于在桌面应用程序上使用Webkit的文章](http://www.linuxjournal.com/magazine/using-webkit-your-desktop-application)。我希望有Python绑定可用。谢谢。 – Benjamin 2011-05-31 12:04:58

+0

[这是一个总结了SVG支持级别的页面](http://www.codedread.com/svg-support.php)在不同的浏览器中,你可能很难找到一个Gecko包的原因是他们最近宣布他们会[放弃官方对Firefox 5嵌入的支持](https://groups.google.com/d/topic/mozilla.dev.embedding/c_NMcO-N8wo/discussion)。 – robertc 2011-05-31 18:06:57

+0

@Benjamin - 由于您之前的评论,我在该问题中添加了Python标记。而且,显然比所有其他语言都集成所有需要的东西更有意义。 – jsbueno 2011-06-01 11:47:31