【问题标题】:How large is a deflated zlib object?放气的 zlib 对象有多大?
【发布时间】:2018-12-16 23:44:10
【问题描述】:

我正在尝试确定缩小的 zlib blob 的大小。具体来说,我正在放气一个对象,不久之后另一个放气的 blob 在这个文件中。我想知道在移动到下一个之前放气的 blob 需要多少文件。有没有办法识别这个字节数?

谢谢

【问题讨论】:

    标签: zlib


    【解决方案1】:

    我想通了。 当您为 strm.avail_in 分配值时,您将捕获输入的字节,如下所示

    input_len = strm.avail_in = NUMBER_OF_BYTES_READ_FROM_FILE_OR_STREAM;
    

    然后当你运行这个时:

    ret = inflate(&strm, Z_NO_FLUSH);
    

    它应该使用来自该次膨胀迭代的剩余字节数来更新 strm.avail_in 值。 strm.avail_in 和 input_len 值之间的差异是在该迭代中读取的压缩字节数。所以,是这样的:

    read_bytes = input_len - strm.avail_in;
    

    希望这对将来的其他人有所帮助。

    【讨论】:

      猜你喜欢
      • 2015-09-04
      • 2014-03-16
      • 1970-01-01
      • 1970-01-01
      • 2010-12-10
      • 1970-01-01
      • 1970-01-01
      • 2016-10-23
      • 1970-01-01
      相关资源
      最近更新 更多