首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有一种二进制的SVG?

有没有一种二进制的SVG?
EN

Stack Overflow用户
提问于 2015-07-10 05:12:16
回答 3查看 6.1K关注 0票数 17

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

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

EN

回答 3

Stack Overflow用户

发布于 2017-07-08 05:09:57

根据你所说的“太慢”的意思,答案会有所不同:

文件大小太大

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

代码语言:javascript
复制
gzip yourfile.svg && mv yourfile.svg.gz yourfile.svgz

您还可以尝试Brotli compression,它的文件大小往往较小,但需要更多的压缩时间。

包含其他资产是低效的

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

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

解析文本数据花费的时间太长

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

您可以尝试Computer Graphics Metafiles,它可以提前编译。但我不确定它们在消费类设备上的支持率有多高。

票数 5
EN

Stack Overflow用户

发布于 2021-08-13 04:53:49

来自一条评论:

除了通过网络发送它的传输成本之外,几乎没有什么关于SVG的性能是由于它是明文的。

不,那是完全错误的。我在CSIRO工作,使用XML处理海量3D模型。GeoScience澳大利亚公司对解析速度进行了正式研究-与读取4或8字节的二进制表示相比,从文本中解析浮点数对于大数据集来说相对昂贵。

我花了很多时间为Touchgram优化我的内部二进制格式,现在我正在研究矢量艺术。

您可以使用的一种技术组合是

按整数表示的比例对点进行

  1. variable-length整数编码,然后将路径存储为deltas

序列

这可能会产生每个步骤通常只使用1或2个字节的路径,而不是典型的12个字节。

考虑一条基本的行<polyline class="Connect" points="100,200 100,100" />

我可以用4个字节而不是53个字节来表示。

到目前为止,我在二进制SVG中所能找到的就是链接到the project descriptionrepothis post about a Go project

票数 3
EN

Stack Overflow用户

发布于 2020-04-16 16:40:30

Adobe Flash SWF文件可能会起作用。由于它以前无处不在,“播放器”和库都是为许多平台编写的。规范是开放的,并且许可许可。对于简单的2D图形,更早的、更兼容的版本就可以了。

这些文件是二进制的,而且非常小。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31328320

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档