问题
我正在创建多个图表,然后将这些图表发送到服务器以创建 PDF。此数据可能会变大。
问题
压缩图像数据并将其发送到服务器的最佳方式是什么
背景
我正在创建的图表相当复杂,为了让自己省心,所有这些都被转换为一个 Canvas ,在 Canvas 上生成了 base64 数据 uri。目前,数据 uri 已发布到服务器以处理处理。发布的信息可能会变得相当大,小图表每个大约 400-600kb,最大图表大约 12mb。
图表是可以操纵/重新排序的组织结构图。
有没有更好的方法在将这些字符串发送回服务器之前压缩这些字符串?
研究
我检查过的一些东西:
https://github.com/brunobar79/J-I-C/blob/master/src/JIC.js (看起来不像只是调整大小的选项)
http://pastebin.com/MhJZBsqW (看起来很有趣)
但是引用了我找不到的外部库:C_H_Image
Lib_MinifyJpeg
https://code.google.com/p/jslzjb/source/browse/trunk/Iuppiter.js?r=2 (看起来这可以工作但依赖于服务器端的解压缩)
最佳答案
也许字符串压缩是适合您的解决方案。这会将数据转换为字节数组。
例如,有多种实现和算法
LZMA-JS Lempel-Ziv-Markov 链 (LZMA) 压缩算法的独立 JavaScript 实现。
my_lzma = new LZMA("./lzma_worker.js"); my_lzma.compress("This is my compression test.", 1, function on_compress_complete(result) { console.log("Compressed: " + result); my_lzma.decompress(result, function on_decompress_complete(result) { console.log("Decompressed: " + result); }, function on_decompress_progress_update(percent) { console.log("Decompressing: " + (percent * 100) + "%"); }); }, function on_compress_progress_update(percent) { console.log("Compressing: " + (percent * 100) + "%"); });
lz-string : JavaScript 压缩,速度快!
var str = "This is my compression test."; console.log("Size of sample is: " + str.length); var compressed = LZString.compress(str); console.log("Size of compressed sample is: " + compressed.length); str = LZString.decompress(compressed); console.log("Sample is: " + str);
关于javascript - 压缩 base64 数据 uri 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22329481/