如何将SVG图形加载到FireMonkey应用程序中



我能想到的大约有四种实现能够将SVG图形加载到Delphi应用程序中。

其中之一,作者Mattias Andersson,他是FMX.Canvas.VPR的作者,与FireMonkey合作,但他还没有准备好发布代码。

第二个由MartinWalter编写,和VCL一起工作,但开发人员已经退出Delphi,并没有转换到FireMonkey的计划。

第三个是AGGPAS框架的一部分,它可以与VCL一起使用,但不能与FireMonkey一起使用。

第四个由Jason Southwell开发,但日期尚未确定。

因此,我的问题是:如果我今天想要一个SVG组件,而不想再花五分之一(甚至更多)时间重新发明轮子,该走什么路?

我是Mattias Andersson——FMX.Canvas.VPR的作者;我可以说,我仍在积极研究SVG解决方案。我想,一旦我正确地添加了对渐变和文本渲染的支持,我就可以发布第一个测试版了。我依赖TXMLDocument,这对你可以做的事情(IMO)有点限制,所以我不得不发明一些变通办法(也许更好的选择是从头开始实现我自己的XML类。)此外,我还必须对FireMonkey类进行一些运行时补丁,以使一切正常工作。好的部分是,我实际上是根据SVG接口规范来实现的。

我一直在开发的SVG组件已经作为Firemonkey Apesuite的一部分发布。

http://arcana.sivv.com/apesuite

与Mattias Andersson一起参与开发是最好的选择:

  • Mattias Andersson的FMX.Canvas.VPR看起来很有前景,VPR被证明是一个优秀的项目
  • 截至发布时,没有现成的勺子式SVG FireMonkey组件可用(通常进行广泛的网络搜索)

您也可以考虑使用Chromiumembedded。只需在嵌入式浏览器中加载svg即可。然后,您可以将Delphi代码与javascript混合,混合使用html和css等。

这样,你就可以把如何快速绘制东西留给Chrome了(例如,是否使用gpu加速)。

您将获得适当的svg支持,它很容易集成到您的应用程序中,它很灵活,并且在线提供了大量文档和示例代码。

最新更新