【发布时间】:2018-12-16 23:44:10
【问题描述】:
我正在尝试确定缩小的 zlib blob 的大小。具体来说,我正在放气一个对象,不久之后另一个放气的 blob 在这个文件中。我想知道在移动到下一个之前放气的 blob 需要多少文件。有没有办法识别这个字节数?
谢谢
【问题讨论】:
标签: zlib
我正在尝试确定缩小的 zlib blob 的大小。具体来说,我正在放气一个对象,不久之后另一个放气的 blob 在这个文件中。我想知道在移动到下一个之前放气的 blob 需要多少文件。有没有办法识别这个字节数?
谢谢
【问题讨论】:
标签: zlib
我想通了。 当您为 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;
希望这对将来的其他人有所帮助。
【讨论】: