有二进制SVG吗?

时间:2015-07-09 21:12:16

标签: svg graphics intermediate-language

在我看来,在为动态数据可视化编写代码时,我最终会在不同的语言/平台上反复做同样的事情。现在,如果我有一个跨平台语言(我做的)和类似SVG的二进制版本,我可以使我的代码目标,并使用/创建解释器用于我目前需要使用它的任何平台。

我不想要SVG的原因是因为明文部分对我来说太慢了。我当然可以创建自己的中间格式,但是如果已经有各种各样的东西实现了,那么我的工作就越少!

2 个答案:

答案 0 :(得分:2)

根据“太慢”的含义,答案会有所不同:

文件大小

正式地说,SVG与二进制格式最接近的是SVGZ,它是一个带有.svgz扩展名的gzip压缩文件。 All conforming SVG viewers should be able to open it.在* nix系统上制作一个很简单:

gzip yourfile.svg && mv yourfile.svg.gz yourfile.svgz

你也可以试试Brotli compression,它往往会有更小的文件大小,代价是更多的压缩时间。

包括其他资产效率低下

SVG只能通过base64 encoding捆绑位图和其他二进制数据,这会产生相当大的开销。

PDF可以包含原始二进制数据的“流”,并且在以编程方式生成时具有惊人的效率。

解析文本数据需要太长时间

这很棘手。 PDF及其兄弟Encapsulated PostScript也是旧的,支持良好的矢量图形格式。不幸的是,它们也是文本的核心,可选择压缩。

您可以尝试Computer Graphics Metafiles,可以提前编译。但我不确定他们对消费者设备的支持程度如何。

答案 1 :(得分:0)

Adob​​e Flash SWF文件可能会起作用。由于以前的普遍性,为许多平台编写了“播放器”和库。规范是开放的,并获得许可。对于简单的2D图形,更早的版本,更兼容的版本会很好。

文件是二进制文件,非常小。