c # zlib - сжатие данных сжатия в 3-м байте - PullRequest
0 голосов
/ 02 июля 2018

У меня есть файл с данными сжатия.
начало сжатых данных: 78 01 EC 98 F9 5F 4D 7B
начало расшифрованных данных: 10 01 00 00 00 01 4C 61

когда я пытаюсь снова сжать распакованные данные, я получаю
начало сжатых данных: 78 01 ED 98 F9 5F 4D 7B

Почему это может быть?

internal static byte[] CompressData(byte[] data)
{
    using (MemoryStream ms = new MemoryStream())
    {
        using (var str = new Ionic.Zlib.ZlibStream(ms, Ionic.Zlib.CompressionMode.Compress, Ionic.Zlib.CompressionLevel.Level1))
        {
            str.Write(data, 0, data.Length);
        }
        return ms.ToArray();
    }
}

1 Ответ

0 голосов
/ 02 июля 2018

Это должен быть небольшой объем данных, так как этот младший бит, установленный в 0xed, сигнализирует о последнем блоке данных дефляции. Там, где его нет, за этим блоком должен следовать другой блок, возможно, пустой блок, который помечается как последний блок.

Что касается того, почему два разных фрагмента кода, вызывающего zlib, выдают Z_FINISH в разное время.

...