解压缩Zlib数据
本文关键字:数据 Zlib 解压缩 | 更新日期: 2023-09-27 17:59:15
我目前正在尝试从Zlib
压缩的.mat文件中解压缩一些字节。我读了MAT文件格式第1-12页第3段,它告诉我们.mat
文件中的字节是由Zlib
压缩的。
所以,我的问题是,C#是否有一些API或库可以解压缩字节。如果我得到一组像这样的字节
6236 20e6 0062 1606 0860 85f2 1981 980b
4cb3 30e4 25e6 a60a 40f9 2545 9989 39f1
然后我将它们加载到SByte数组中,如何解压缩它们?
我还在网上查了一些图书馆。看起来他们能做的是解压缩整个文件,而不是一些字节。。。。
我对这方面很陌生。感谢您的帮助。
您可以使用SharpZipLib中的InflaterInputStream
。.mat
文件的标头长度为0x88,所以您必须跳过它
byte[] data = File.ReadAllBytes("c.mat").Skip(0x88).ToArray();
byte[] decompressedData = new byte[10000];
int decompressedLength = 0;
using (MemoryStream memory = new MemoryStream(data))
using (InflaterInputStream inflater = new InflaterInputStream(memory))
decompressedLength = inflater.Read(decompressedData, 0, decompressedData.Length);