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

Is SVG is the correct technology for future project

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

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

我的计划是从 Adob​​e Illustrator 之类的软件中导出 SVG。然后允许客户使用 snapsvg 等网络技术对其进行编辑。这将允许人们编辑 svg,然后我们可以在渲染和打印(PDF)方面为他们做一些事情。

SVG 的替代方案类似于 canvas 使用 fabric js 在自定义数据模型 (json/xml) 的顶部启用相同的功能。

如果有人有任何建议或信息可以帮助我做出决定,我将不胜感激。如果这不是解决此问题的正确位置,我们将不胜感激任何建议。

谢谢!

SVG 不会很快消失(虽然 SMIL svg 标记可能会消失,所以我不会通过它制作动画)。 SVG 在某些方面已经在移动设备等应用中发挥了自己的作用,在这些应用中需要小尺寸图像,尤其是徽标等应用。

就个人而言,如果您想使用 Illustrator 之类的软件并能够处理图像,特别是如果您可能在某些时候想要为图像的某些部分设置动画,我会选择 SVG。它有各种库,Snap.svg 和 svg.js 是其中的两个主要库(如果想要制作图形和图表,d3.js 是一个)。

如果您将图像传递给其他图形设计师等进行开发,我会坚持在源代码中使用 SVG。如果有某些特定原因,您以后可以随时将 fabric.js 与导出的 SVG 一起使用。

这里是 Fabricjs 开发人员。

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

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

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

与 webgl 相比,过滤速度较慢,并且更难在不同浏览器以及 illustrator 和浏览器之间获得完全相同的渲染。

在打印时,您经常需要将格式从 SVG 更改为不支持所有 SVG 功能的 PDF。

Canvas 如果没有图书馆的帮助,来自另一方的技术将更难使用,图书馆会施加自己的限制。 与使用 svgs.

修改 dom 元素相比,修改像素通常更慢

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

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

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