javascript - 压缩 base64 数据 uri 图像

标签 javascript html post data-uri

问题

我正在创建多个图表,然后将这些图表发送到服务器以创建 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/

相关文章:

javascript - 将所有文本区域限制为指定的字符数

javascript - 从无序列表构建 json 字符串

html - Bootstrap 4 - 使用输入/选择菜单修复列宽

javascript - 如何检查一个 div 是否包含另一个 div?

用于新文件创建和目录创建的 HTTP PUT

javascript - 在 Angular JS 中提前输入

javascript - 如何在 Angular 2 中的 Google map 上显示标记?

javascript - 在 Wordpress 中使用 Avada 主题将 HTML 和 JavaScript 添加到页面

javascript - 使用 jquery 和 servlet 检查数据库中的现有用户

java - 将值数组 POST 到 java servlet