【问题标题】:Is there a function for inflate (zlib/miniz) which return upper bound of inflate/decompress size?是否有用于返回膨胀/解压缩大小上限的膨胀 (zlib/miniz) 函数?
【发布时间】:2014-11-14 03:37:18
【问题描述】:

我知道 zlib/miniz 提供了 compressBound,它根据纯文本大小返回 deflate/compress 大小的上限。很方便。

是否有用于返回膨胀/解压缩大小上限的膨胀 (zlib/miniz) 函数? 还是一个简单的公式决定了它?喜欢:

decompress size = compressed size * factor

【问题讨论】:

    标签: zlib deflate inflate


    【解决方案1】:

    是的,但我认为您不会觉得它很有用。上限为输入数据大小的 1032 倍。

    【讨论】:

    • 而事实是通过扫描压缩数据无法分辨数字?
    • 您可以通过读取和解码所有压缩数据来确定未压缩数据的大小,而无需实际写入未压缩数据,并将已写入的字节数相加。这不是上限,而是确切的大小。
    • @MarkAdler 可以在不事先分配任何内存的情况下完成吗?我试过uncompress(NULL, &dsize, cbuf, csize);,但这似乎不起作用。
    • @user966939 不,uncompress() 不支持。但是,您可以直接使用 inflate* 函数解压缩和丢弃数据,以便找到未压缩数据的长度。虽然只解压缩一次会更快。您可以根据需要使用realloc() 或其他可增长的数据结构来增加分配内存的大小,
    猜你喜欢
    • 2014-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多