2011-05-31 39 views
4

我真的很喜歡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

回答

2

問題是,效果需要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