【发布时间】:2010-02-12 14:32:43
【问题描述】:
我正在尝试通过 processingjs 开发一个画笔应用程序。 该 API 有函数 loadPixels() 将 RGB 值加载到数组中。 现在我想将数组存储在服务器数据库中。
问题是数组的大小,当我转换为字符串时,大小为 5 MB。
最好的解决方案是在 javascript 级别进行压缩吗?怎么做?
【问题讨论】:
标签: javascript compression processing.js
我正在尝试通过 processingjs 开发一个画笔应用程序。 该 API 有函数 loadPixels() 将 RGB 值加载到数组中。 现在我想将数组存储在服务器数据库中。
问题是数组的大小,当我转换为字符串时,大小为 5 MB。
最好的解决方案是在 javascript 级别进行压缩吗?怎么做?
【问题讨论】:
标签: javascript compression processing.js
有关 LZW 压缩示例,请参阅 http://rosettacode.org/wiki/LZW_compression#JavaScript。它最适用于具有重复模式的较长字符串。
来自 LZW 上的Wikipedia article:
一个字典被初始化为包含 单字符串 对应于所有可能的 输入字符(仅此而已 除了清除代码和停止代码 if 他们正在被使用)。算法 通过扫描输入来工作 字符串越来越长 子串,直到找到一个 字典里没有。当这样一个 找到字符串,索引为 字符串减去最后一个字符(即 中的最长子串 字典)是从 字典并发送到输出,并且 新字符串(包括最后一个 字符)被添加到字典中 使用下一个可用代码。最后 然后将输入字符用作 下一个扫描起点 子字符串。
这样,依次变长 字符串注册在 字典并提供给 后续编码为单个输出 价值观。该算法在 具有重复模式的数据,因此 消息的初始部分将看到 小压缩。作为消息 然而,压缩比增长 渐近于 最大。
【讨论】:
JavaScript implementation of Gzip 有几个相关的答案。
另外,Javascript LZW 和 Huffman Coding with PHP and JavaScript 是我发现的其他实现。
【讨论】: