SVG是未来项目的正确技术吗?

时间:2017-10-03 11:11:50

标签: canvas svg web fabricjs snap.svg

我不是100%肯定stackoverflow是问题的正确位置,所以请原谅我,如果我烦恼!我也很欣赏这是一个很商业化的问题!

我发现很难找到有关SVG作为标准的活跃性的任何信息以及SVG的未来可能是什么。我基本上试图避免支持主流浏览器将在几年后倾销的技术(但谁可以预测未来?!?!)

我的计划是从Adobe Illustrator中导出SVG ..然后允许客户使用snapsvg等网络技术编辑它们。这可以让人们编辑svg,然后我们可以在渲染和打印方面为他们做些事情(如PDF)。

SVG的替代方案就像canvas使用fabric js在自定义数据模型(json / xml)的顶部启用相同的东西。

如果有人有任何建议或信息可以帮助我做出决定,我会非常感激。如果这个问题不适合这个问题,那么任何建议都应该受到赞赏。

谢谢!

2 个答案:

答案 0 :(得分:1)

SVG很快就不会消失(虽然SMIL svg可能是标记,所以我不会通过它制作动画)。 SVG在某些方面已经涉及移动等需要低尺寸图像的东西,尤其是像徽标这样的东西。

就个人而言,如果你想使用像Illustrator这样的东西并且能够操作图像,特别是如果你可能在某些时候想要为图像的部分动画,我会选择SVG。它有各种各样的库,Snap.svg和svg.js是主要的2个(如果想要绘制图形和图表,d3.js就是那个)。

如果您将图像传递给其他图形设计师等,我会坚持使用SVG。如果出于某种特定原因,您可以随后将fabric.js与导出的SVG一起使用。

答案 1 :(得分:1)

Fabricjs开发人员。

如果您正在处理矢量数据,SVG是一个不错的选择。 如果您的应用程序和客户想要创建简单的图形SVG就足够了。

当谈到图片,过滤,像素编辑以及模糊或涂抹等操作时,SVG开始不再是最佳选择。

此外,文本编辑在SVG中有一些限制,因为没有换行概念,这对于必须在TSPANS之上构建此概念的用户或开发人员来说很烦人。

与webgl相比,过滤速度较慢,并且难以在不同的浏览器以及插图画家和浏览器中获得完全相同的呈现。

在打印方面,您经常需要更改SVG格式,而不是支持所有SVG功能的PDF格式。

另一方面的Canvas技术如果没有一个可以自行约束的图书馆帮助,则难以使用。 修改像素通常比使用svgs修改dom元素要慢。

它为您提供开箱即用的PNG或JPEG导出,当然不会对导出后创建的设计或产品进行任何操作,而SVG可以从一种非破坏性编辑中受益。

在fabricjs的特定情况下(因为你提到它),库帮助你创建文档的可序列化版本,然后你可以以更高的分辨率重新渲染或再次保存,加载和修改(导出分辨率取决于浏览器你用来在firefox和chrome上渲染可能的12.000 x 12.000或更高一些)

最适合我的工具取决于您希望向应用程序用户提供的内容类型。如果涉及图片,我会使用canvas和某种库来帮助您保存/恢复设计并抽象代码。 (Fabricjs很好,可能还有其他相同或更好的选择)