Javascript 客户端数据压缩

发布于 2024-08-22 02:19:33 字数 194 浏览 6 评论 0原文

我正在尝试通过processingjs 开发一个画笔应用程序。 此 API 具有函数 loadPixels(),可将 RGB 值加载到数组中。 现在我想将数组存储在服务器数据库中。

问题是数组的大小,当我转换为字符串时,大小为 5 MB。

最好的解决方案是在 javascript 级别进行压缩吗?怎么做呢?

I am trying to develop a paint brush application thru processingjs.
This API has function loadPixels() that will load the RGB values in to the array.
Now i want to store the array in the server db.

The problem is the size of the array, when i convert to a string the size is 5 MB.

Is the best solution is to do compression at javascript level? How to do it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

时光暖心i 2024-08-29 02:19:33

请参阅 http://rosettacode.org/wiki/LZW_compression#JavaScript 了解 LZW 压缩示例。它最适合具有重复模式的较长字符串。

来自关于 LZW 的维基百科文章

字典被初始化为包含
单字符字符串
对应所有可能的
输入字符(没有别的
除了清除和停止代码,如果
他们正在被使用)。算法
通过扫描输入来工作
字符串逐渐变长
子串,直到找到一个
字典里没有。当这样一个
找到字符串,索引为
字符串减去最后一个字符(即
中最长的子串
字典)是从
字典并发送到输出,并且
新字符串(包括最后一个
字符)被添加到字典中
与下一个可用的代码。最后一个
然后将输入字符用作
下一个扫描起点
子字符串。

就这样,依次变长
字符串被注册在
字典并可供
后续编码作为单个输出
价值观。该算法最适合
具有重复模式的数据,因此
消息的初始部分将看到
压缩小。正如留言所说
然而,压缩比会增加
渐近趋于
最大。

See http://rosettacode.org/wiki/LZW_compression#JavaScript for an LZW compression example. It works best on longer strings with repeated patterns.

From the Wikipedia article on LZW:

A dictionary is initialized to contain
the single-character strings
corresponding to all the possible
input characters (and nothing else
except the clear and stop codes if
they're being used). The algorithm
works by scanning through the input
string for successively longer
substrings until it finds one that is
not in the dictionary. When such a
string is found, the index for the
string less the last character (i.e.,
the longest substring that is in the
dictionary) is retrieved from the
dictionary and sent to output, and the
new string (including the last
character) is added to the dictionary
with the next available code. The last
input character is then used as the
next starting point to scan for
substrings.

In this way, successively longer
strings are registered in the
dictionary and made available for
subsequent encoding as single output
values. The algorithm works best on
data with repeated patterns, so the
initial parts of a message will see
little compression. As the message
grows, however, the compression ratio
tends asymptotically to the
maximum.

暗喜 2024-08-29 02:19:33

Gzip 的 JavaScript 实现 有几个相关的答案。

另外, Javascript LZWHuffman Coding with PHP and JavaScript 是我发现的其他实现。

JavaScript implementation of Gzip has a couple answers that are relevant.

Also, Javascript LZW and Huffman Coding with PHP and JavaScript are other implementations I found.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文