Argentini.Halide.H3Compress.Compress C# (CSharp) Method

Compress() public static method

GZip compress a byte array.
public static Compress ( byte buffer ) : byte[]
buffer byte Byte array to compress.
return byte[]
        public static byte[] Compress(byte[] buffer)
        {
            MemoryStream ms = new MemoryStream();
            GZipStream zip = new GZipStream(ms, CompressionMode.Compress, true);
            zip.Write(buffer, 0, buffer.Length);
            zip.Close();
            ms.Position = 0;

            byte[] compressed = new byte[ms.Length];
            ms.Read(compressed, 0, compressed.Length);

            byte[] gzipBuffer = new byte[compressed.Length + 4];
            Buffer.BlockCopy(compressed, 0, gzipBuffer, 4, compressed.Length);
            Buffer.BlockCopy(BitConverter.GetBytes(buffer.Length), 0, gzipBuffer, 0, 4);
            return gzipBuffer;
        }