我有来自 .PDF 的原始数据集,并尝试解压缩和压缩它们而不丢失数据。
这是我的一些代码:
# Decompression
decompress_data = zlib.decompress(open('test.raw', 'rb').read())
decompress_file = open('test.raw.temp', 'wb')
decompress_file.write(decompress_data)
decompress_file.close()
# Compression
compress_data = zlib.compress(open('test.raw.temp', 'rb').read())
compress_file = open('test.raw_', 'wb')
compress_file.write(compress_data)
compress_file.close()
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,我解压缩test.raw并获取临时数据,反之亦然。
所以得到了压缩文件 -test.raw_但问题是它的大小与原始原始数据不同 - test.raw。
当我更改压缩级别时,解压缩和压缩的大小保持不同。
星期四 hxd 编辑器我知道原始原始文件有默认的压缩标头 - 789C.
CMF | FLG
0x78 | 0x01 - No Compression/low
0x78 | 0x9C - Default Compression
0x78 | 0xDA - Best Compression
Run Code Online (Sandbox Code Playgroud)
由此看来,我认为最好的压缩级别是6. 它返回相同的标头,但大小仍然不同。
我在哪里取得了错误的进展?
请帮我。
你没有问题。无法保证解压后压缩的结果会给您完全相同的结果。无损压缩的唯一保证是压缩后解压会给你完全相同的东西。
获得您所期望的结果的唯一方法是,如果您使用完全相同的压缩代码、该代码的完全相同的版本以及为该代码提供的完全相同的参数,就像原始压缩的任何人或任何人所做的那样您从 PDF 中提取的数据。
| 归档时间: |
|
| 查看次数: |
875 次 |
| 最近记录: |