说,我想写一个会大量使用SVG的桌面应用程序。我对渲染引擎,GUI工具包,库等的选择是什么?
我希望:
那么,我的选择是什么?
答案 0 :(得分:15)
我建议cairo,Cairo是一个支持SVG文件输出的2D图形库。
cairo API提供类似于绘图操作符的操作 PostScript和PDF。在cairo的操作包括抚摸和填充 立方Bézier样条,变换和合成半透明图像, 和抗锯齿文本呈现。所有的绘图操作都可以 通过任何仿射变换(规模,旋转,剪切, 等)
Cairo实现为用C编程语言编写的库,但绑定可用于多个不同的programming languages。其中包括Perl,Python,Ruby等等。
它还有几个Toolkit Bindings。例如,GTK+ 2.8+完全支持cairo。
还有OpenGL的实验后端。哪些好处包括Easily integrate features like PS-, PDF-, SVG-support to your OpenGL-application (may need additional libraries).
Cairo是免费软件,可以重新分发和/或 根据GNU Lesser General Public的条款修改 许可证(LGPL)2.1版或Mozilla公共许可证(MPL)版本 1.1由你选择。
答案 1 :(得分:2)
考虑在Mac上顺畅运行的Safari浏览器。您可以使用Raphael库编写应用程序。
此数据库显示Raphael语言页面本身是纯矢量图形。
只需按照自己的方式抛出它,看看它是否适合你的约束......
答案 2 :(得分:2)
Appcelarator Titanium Desktop似乎是您最好的选择。您可以编写Ruby,Python或JavaScript应用程序,并使用HTML和CSS作为GUI。还有Adobe AIR,但它不是开源的。
至于SVG,我发现的最好的图书馆是d3.js。乍一看,您可能会得到它可视化库的印象,但它可以用于任何类型的SVG工作。有些人提到Rapheal.js,它的优势在于它是跨浏览器,但由于它必须在大多数IE版本中使用VML,因此它会留下一些SVG功能,例如组<g>
标签。 / p>
答案 3 :(得分:2)
我建议去Apache's Batik。 Batik是基于Java的SVG工具包,可以在Java存在的任何平台上呈现,生成,操作和转码SVG;来自台式机,小程序甚至手持设备。它利用了Java平台独立性的强大功能。它是桌面应用程序的理想选择。它也支持完整的交互性,链接,脚本和动画。
Apache Cocoon,Oracle JDeveloper 10i,The JFreeChart project,ILOG Dicovery and Jviews - The advanced visual data analysis tools,Volity and Gamut Gaming projects,GLIPS Graffiti SVG Editor,eDoc Studio project,Apache FOP project一些使用Batik的项目。
答案 4 :(得分:0)
我不会直接使用cairo。相反,试试wxWigets ......
有一个非常有用的wxGraphicsContex类,它为你做了大量的cairo和其他很酷的事情。甚至包装中的SVG-Demo也是如此。
还有一个名为“wxcairo”的项目,它使用libsvg。
如果你参与了一个大型的大型项目,它使用SVG作为原生格式,请看一下“Inkcape”。这是一个用GTK编写的非常好的插图程序。
答案 5 :(得分:0)
回答这个问题可能太迟了,我建议使用Opensource Webkit,
通过这样做,以下是优点,
1 - 将获得对HTML的额外支持,
2 - 兼容所有平台,Win,Mac,Linux,iOS,BB
3 - 在所有平台上,它将使用Cairo Library来渲染图形,
4 - 易于扩展和扩展以添加附加功能....
答案 6 :(得分:-2)
忽略拉斐尔的所有话题,而是与D3合作。
D3可以读取您的XML树,并根据您的要求轻松生成SVG代码。这意味着您可以以任何您喜欢的方式呈现任何XML文档。这包括所有拉斐尔的输出,还有更多,除此之外。
在今天之前我没有听说过开罗。但是,根据D3提供的结果,我甚至不会对其进行调查。