我正在尝试通过processingjs开发一个画笔应用程序。 此API具有函数 loadPixels(),可将RGB值加载到数组中。 现在我想将数组存储在服务器db中。
问题是数组的大小,当我转换为大小为5 MB的字符串时。
最好的解决方案是在javascript级别进行压缩吗?怎么做?
答案 0 :(得分:8)
有关LZW压缩示例,请参阅http://rosettacode.org/wiki/LZW_compression#JavaScript。它适用于具有重复模式的较长字符串。
来自LZW上的Wikipedia article:
字典初始化为包含 单字符串 对应所有可能的 输入字符(没有别的 除了清除和停止代码,如果 他们被使用了)。算法 通过扫描输入工作 字符串连续更长 子串,直到它找到一个 不在字典里。当这样的 找到字符串,索引为 字符串减去最后一个字符(即 最长的子串 从中检索字典) 字典并发送到输出,和 新字符串(包括最后一个字符串 字符)被添加到字典中 使用下一个可用代码。最后 输入字符然后用作 下一个要扫描的起点 子串。
以这种方式,相继更长 字符串在。中注册 字典并提供 后续编码为单输出 值。该算法效果最佳 数据有重复的模式,所以 消息的初始部分将会看到 压力很小。作为消息 然而,压缩比增长 倾向于渐近的 最大。
答案 1 :(得分:1)
JavaScript implementation of Gzip有几个相关的答案。
此外,Javascript LZW和Huffman Coding with PHP and JavaScript是我找到的其他实现。