我有一个使用 OpenVG 来显示矢量动画的 C 程序。所有的对象都是通过一次又一次地编写 VG 函数来创建的...我与一位艺术家合作,他可以为我提供矢量图片的 SVG 文件。所以我的目标是在我的 OpenVG 上下文中显示这些 SVG,但我找不到任何方法。
首先我使用 SVGconv(http://svgconv.blasiussecundus.me),但他的创建者告诉我,它从 10 年来就不支持了......
也许重要的细节:程序在 RaspberryPi 上运行。
在我看来,有解决方案:1)VG中有一个函数可以导入SVG,但我错过了它 2)有效的解析器在网络上的某个地方......
你的意见是什么?
谢谢你
在 http://www.khronos.org/openvg/ 上,您会看到提到 OpenVG 支持“SVG”和“Flash”,这只是为了营销,没有特定于“SVG”或“Flash”的特殊功能“在 OpenVG 中。
这里指的是通过“路径渲染”支持SVG和Flash。
示例:
<path d="M300,200 h-150 a150,150 0 1,0 150,-150 z"
fill="red" stroke="blue" stroke-width="5" />
对于 SVG 中的形状之类的东西...
示例:
<rect x="1" y="1" width="1198" height="398"
fill="none" stroke="blue" stroke-width="1" />
OpenVG中有一些特殊的函数可以绘制矩形等。
但是 OpenVG 的核心是“路径渲染、剪切、着色器……”,要在 OpenVG 中支持 SVG,您只需要一个 XML 解析库。
您尝试过这个工具来进行转换吗? http://svgconv.sourceforge.net/
1)不存在显示 svg 的函数。 OpenVG的级别比OpenGL高,但它仍然是低级库(全局函数,主要参数的设置主要通过这些函数,创建上下文的过程比较困难等)。
2)“有效的解析器位于网络上的某个地方” - 大量的解析器,但我还没有看到任何具有完整 svg 支持的解析器。所以无论如何你需要了解底层图形编程的知识。通过例如 cocos2d 编写您的代码可能会容易得多。
MonkSVG (https://github.com/micahpearlman/MonkSVG) 可以解析 SVG 图像并将其渲染到 MonkVG (https://github.com/micahpearlman/MonkVG),这是一个 OpenCV like 库最好模拟 OpenCV 功能。 MonkSVG 应该能够相当容易地适应“真正的 OpenCV”。