kit*_*une 1 base64 svg json jq
我不知道我是否在正确的“堆栈”中询问,但目前我似乎是最合适的。还请注意,如果我错了,我会立即将问题转移到另一个堆栈。
我需要保存矢量图像(很可能是 SVG 格式)。我们正在考虑如何记住这个图像。关键是我们更喜欢只使用 JSON 文件,这意味着你必须将 SVG 图像至少转换为 Base54,但它是否无损?
另一种方法是将此 SVG 图像的本地路径保存在 JSON 文件的字段中。该图像和 JSON 文件不应通过网络发送,并且考虑到 PC 环境,从 Bas64 到 SVG 的转换不应太慢。根据您的经验,您建议做什么?
base64是一种简单的序列化算法,不涉及任何损失。
但是,SVG 已经是序列化 (XML) 字符串格式,以 utf-8 编码。不需要使用额外的序列化层,将其存储在 JSON 文件中也没有问题,该文件也是 utf-8 格式(除了需要转义双引号之外)。如果您不想使用 base64,数据 URL(您可能希望这样做,但您没有说)也可以包含纯 XML 数据。像这样:
data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg">...</svg>
Run Code Online (Sandbox Code Playgroud)
(确保 url-excape#为%23。)
性能是您需要亲自测试的东西。在特定用例中,我决定使用包含 base64 编码字符串的 JSON 文件,因为它实际上是性能最高的解决方案,但这不是您可以依赖的优先级。