标签: lzma

在javascript中压缩的问题

我有一个我试图压缩的对象.它的形式

[
  {
    array
    string
  },
  {
    array
    string
  },
  ...
]
Run Code Online (Sandbox Code Playgroud)

这些数组的长度不超过10-15,与字符串相比非常小(它们是html,长度大约为170k).虽然字符串通常是重复的,或者有大量的重叠.所以我的直觉告诉我压缩值应该是1个字符串的压缩值,加上一点额外的.

我JSON.stringify这个对象,并尝试压缩.

大多数压缩库在压缩字符串方面表现不佳,因为服务器向我发送了一个77kb的gzip压缩版本,我知道它至少可以这么小.

用gzip JS

LZMA-JS

在我尝试过的15个库中做得很好.

问题是gzip-js在字符串数量上是线性的.但是lzma正确地做到了这一点,它只是略微增加了尺寸.

不幸的是,当压缩7mb(约30~字符串)时,Lzma-js(2级)非常慢(20s vs 1s gzip).

有没有一个compressopn库,它大致和gzip一样快,但不能在重复字符串上线性缩放?

javascript compression gzip lzma

9
推荐指数
1
解决办法
1064
查看次数

Javascript中是否有可用于压缩的库

我正在寻找从服务器以压缩格式向客户端(带有ajax请求)发送数据,而不是使用浏览器解压缩该数据?有这个图书馆吗?

我不是在寻找压缩javascript文件!

编辑:我认为问题不够清楚,我不想压缩html文件,我想在服务器上存储一些压缩的LZMA文件或任何其他压缩格式(如obj文件),然后我需要在解压后解压缩它们我用AJAX得到它.不使用gzip同时压缩/解压缩.用Javascript获取后打开已经被zipeed的文件.

javascript compression lzma

8
推荐指数
2
解决办法
8389
查看次数

如何使用lzma压缩创建zip

我知道如何创建zip存档:

import java.io.*;
import java.util.zip.*;
public class ZipCreateExample{
    public static void main(String[] args)  throws Exception  
        // input file 
        FileInputStream in = new FileInputStream("F:/sometxt.txt");

        // out put file 
        ZipOutputStream out = new ZipOutputStream(new FileOutputStream("F:/tmp.zip"));

        // name the file inside the zip  file 
        out.putNextEntry(new ZipEntry("zippedjava.txt")); 

        // buffer size
        byte[] b = new byte[1024];
        int count;

        while ((count = in.read(b)) > 0) {
            System.out.println();
            out.write(b, 0, count);
        }
        out.close();
        in.close();
    }
}
Run Code Online (Sandbox Code Playgroud)

但我不知道如何使用lzma压缩.

我找到了这个项目:https://github.com/jponge/lzma-java,它创建压缩文件,但我不知道如何将它与我现有的解决方案结合起来.

java lzma

8
推荐指数
1
解决办法
4482
查看次数

如何在C++中使用LZMA SDK?

我在我的应用程序中使用LZMA SDK有困难.

我想创建一种单文件压缩工具.我不需要任何目录支持,只需要LZMA2流.但我不知道如何使用LZMA SDK.

请问有谁能给我一个关于如何在C++下使用LZMA SDK的例子?

c++ lzma

8
推荐指数
1
解决办法
8951
查看次数

LzmaLib:C中的压缩/解压缩缓冲区

我试图用LzmaLibLzmaCompress()LzmaDecompress()与缓冲,适应提供的例子在这里.

我正在使用~3MB缓冲区进行测试,并且压缩函数似乎工作正常(产生~1.2MB的压缩缓冲区),但是当我尝试解压缩时,它只提取~300字节并返回SZ_ERROR_DATA.

提取的少数字节是正确的,但我不知道为什么它会停在那里.

我的代码:

#include <stdio.h>
#include <stdlib.h>

#include "LzmaLib.h"

void compress(
    unsigned char **outBuf, size_t *dstLen,
    unsigned char *inBuf, size_t srcLen)
{
    unsigned propsSize = LZMA_PROPS_SIZE;
    *dstLen = srcLen + srcLen / 3 + 128;

    *outBuf = (unsigned char*)malloc(propsSize + *dstLen);

    int res = LzmaCompress(
        (unsigned char*)(*outBuf + LZMA_PROPS_SIZE), dstLen,
        inBuf, srcLen,
        *outBuf, &propsSize,
        -1, 0, -1, -1, -1, -1, -1);

    assert(res == SZ_OK);

    *dstLen = *dstLen + LZMA_PROPS_SIZE; …
Run Code Online (Sandbox Code Playgroud)

c compression 7zip lzma

8
推荐指数
1
解决办法
921
查看次数

在ModuleNotFoundError中导入熊猫结果:_lzma

在使用python 3.7.3的Ubuntu 18.04上,我尝试导入熊猫,但这失败了,因为它找不到_lzma

我已验证_lzmadpkg已安装:

/usr/lib/python3.7/lib-dynload/_lzma.cpython-37m-x86_64-linux-gnu.so。奇怪的是,_lzma不是熊猫的依赖项(如pip3所指定)。

lzma pandas python-3.7 ubuntu-18.04

8
推荐指数
2
解决办法
4124
查看次数

用PHP解压缩LZMA

我有一堆用LZMA压缩的SWF文件,我想在我的服务器上以编程方式解压缩和读取PHP.有人可以指导我使用PHP LZMA SDK吗?我已经用Google搜索了,但到目前为止还没有发现任何东西,只是引用了一个断开的链接(7z扩展为php?)

我有一个工作的python模块,设法读取LZMA压缩SWF的标头,但它需要一个名为pyLZMA的模块,它似乎不想在我的服务器上安装,并让它在本地工作是一个巨大的痛苦,所以我如果有的话,我更喜欢PHP解决方案.

php compression lzma

7
推荐指数
1
解决办法
2203
查看次数

在 Red Hat 中安装 R 3.3.1。需要 LZMA 版本 &gt;=5.0.3

我正在从源安装 R 3.3.1。在./configure --enable-R-shlib执行过程中,弹出错误:

checking for lzma_version_number in -llzma... yes
checking lzma.h usability... yes
checking lzma.h presence... yes
checking for lzma.h... yes
checking if lzma version >= 5.0.3... no
configure: error: "liblzma library and headers are required"
Run Code Online (Sandbox Code Playgroud)

我看到没有可用的 LZMA 版本 5.0.3,目前可通过XZ Utils.

图卡尼 XZ 实用程序

我安装了,XZ 5.2.2但错误仍然出现。

redhat r lzma xz

7
推荐指数
1
解决办法
5109
查看次数

使用python 3提取7z文件

我试图使用 python 解压缩 7z 文件,但我似乎无法弄清楚。我想我可以在 python 3 中使用 lzma 模块,但我似乎无法弄清楚:

我认为它会像 zipfile 包一样工作:

import lzma
with lzma.open('data.7z') as f:
    f.extractall(r"<output path>")
Run Code Online (Sandbox Code Playgroud)

但在阅读文件后,似乎没有。所以这是我的问题:如何使用标准包提取 7z 文件?我不想调用 subprocess 来使用 7-zip 解压缩文件,因为我不能保证用户安装了这个软件。

我搜索了互联网和堆栈 oerflow 并注意到所有答案几乎都回到使用子处理上,我想像瘟疫一样避免这种情况。

虽然在 stackoverflow 上也有类似的问题,但答案仍然取决于 7-zip 或 7zip SDK。我不想使用 7-zip sdk/exe 进行提取,因为这假设用户已安装该软件。

这是 7z 文件中的属性:

在此处输入图片说明

python 7zip lzma python-3.x

7
推荐指数
1
解决办法
3万
查看次数

Python解压相对性能?

TLDR;的python中提供的各种压缩算法 gzipbz2lzma,等,具有最佳的减压性能?

完整讨论:

Python 3 有各种用于压缩/解压缩数据的模块, 包括gzipbz2lzmagzip并且bz2还可以设置不同的压缩级别。

如果我的目标是平衡文件大小(/压缩比)和解压缩速度(压缩速度不是问题),哪个是最佳选择?解压缩速度比文件大小更重要,但由于有问题的未压缩文件每个大约 600-800MB(32 位 RGB .png 图像文件),而且我有十几个,我确实想要一些压缩。

  • 我的用例是我从磁盘加载一打图像,对它们进行一些处理(作为一个 numpy 数组),然后在我的程序中使用处理过的数组数据。

    • 图像永远不会改变,我只需要在每次运行我的程序时加载它们。
    • 处理所需的时间与加载时间大致相同(几秒钟),因此我试图通过保存处理过的数据(使用pickle)而不是每次加载原始的、未处理的图像来节省一些加载时间。最初的测试很有希望——加载原始/未压缩的腌制数据只需要不到一秒钟,而加载和处理原始图像则需要 3 或 4 秒——但如前所述导致文件大小约为 600-800MB,而原始 png 图像是只有大约 5MB。所以我希望通过以压缩格式存储选择的数据,我可以在加载时间和文件大小之间取得平衡。
  • 更新:情况实际上比我上面描述的要复杂一些。我的应用程序使用PySide2,所以我可以访问这些Qt库。

    • 如果我读取图像并使用pillow( PIL.Image)转换为 numpy 数组,实际上我不需要做任何处理,但将图像读入数组的总时间约为 4 秒。
    • 相反,如果我使用QImage读取图像,那么我必须对结果进行一些处理,以使其可用于我的程序的其余部分,因为QImage加载数据的方式的字节序- 基本上我必须交换位顺序和然后旋转每个“像素”,使 alpha 通道(显然是由 QImage 添加的)出现在最后而不是第一个。这整个过程只需约3.8秒,所以稍微比只使用PIL更快。
    • 如果我保存numpy未压缩的数组,那么我可以在 0.8 …

python performance gzip lzma bz2

7
推荐指数
2
解决办法
4253
查看次数

标签 统计

lzma ×10

compression ×4

7zip ×2

gzip ×2

javascript ×2

python ×2

bz2 ×1

c ×1

c++ ×1

java ×1

pandas ×1

performance ×1

php ×1

python-3.7 ×1

python-3.x ×1

r ×1

redhat ×1

ubuntu-18.04 ×1

xz ×1