コード例 #1
0
ファイル: GZip.cs プロジェクト: tangyiyong/EpLibrary.cs
 /// <summary>
 /// Decompress the given byte array
 /// </summary>
 /// <param name="gzip">byte array to decompress</param>
 /// <returns>decompressed byte array</returns>
 public static byte[] Decompress(byte[] gzip)
 {
     // Create a GZIP stream with decompression mode.
     // ... Then create a buffer and write into while reading from the GZIP stream.
     using (GZipStream stream = new GZipStream(new MemoryStream(gzip), CompressionMode.Decompress))
     {
         const int size = 4096;
         byte[] buffer = new byte[size];
         using (MemoryStream memory = new MemoryStream())
         {
             int count = 0;
             do
             {
                 count = stream.Read(buffer, 0, size);
                 if (count > 0)
                 {
                     memory.Write(buffer, 0, count);
                 }
             }
             while (count > 0);
             return memory.ToArray();
         }
     }
 }
コード例 #2
0
ファイル: GZipStream.cs プロジェクト: tangyiyong/EpLibrary.cs
 /// <summary>
 ///   Uncompress a GZip'ed byte array into a single string.
 /// </summary>
 ///
 /// <seealso cref="GZipStream.CompressString(String)"/>
 /// <seealso cref="GZipStream.UncompressBuffer(byte[])"/>
 ///
 /// <param name="compressed">
 ///   A buffer containing GZIP-compressed data.
 /// </param>
 ///
 /// <returns>The uncompressed string</returns>
 public static String UncompressString(byte[] compressed)
 {
     using (var input = new MemoryStream(compressed))
     {
         Stream decompressor = new GZipStream(input, CompressionMode.Decompress);
         return ZlibBaseStream.UncompressString(compressed, decompressor);
     }
 }
コード例 #3
0
ファイル: GZipStream.cs プロジェクト: tangyiyong/EpLibrary.cs
        /// <summary>
        ///   Compress a byte array into a new byte array using GZip.
        /// </summary>
        ///
        /// <remarks>
        ///   Uncompress it with <see cref="GZipStream.UncompressBuffer(byte[])"/>.
        /// </remarks>
        ///
        /// <seealso cref="GZipStream.CompressString(string)"/>
        /// <seealso cref="GZipStream.UncompressBuffer(byte[])"/>
        ///
        /// <param name="b">
        ///   A buffer to compress.
        /// </param>
        ///
        /// <returns>The data in compressed form</returns>
        public static byte[] CompressBuffer(byte[] b)
        {
            using (var ms = new MemoryStream())
            {
                System.IO.Stream compressor =
                    new GZipStream( ms, CompressionMode.Compress, CompressionLevel.BestCompression );

                ZlibBaseStream.CompressBuffer(b, compressor);
                return ms.ToArray();
            }
        }
コード例 #4
0
ファイル: GZipStream.cs プロジェクト: tangyiyong/EpLibrary.cs
        /// <summary>
        ///   Uncompress a GZip'ed byte array into a byte array.
        /// </summary>
        ///
        /// <seealso cref="GZipStream.CompressBuffer(byte[])"/>
        /// <seealso cref="GZipStream.UncompressString(byte[])"/>
        ///
        /// <param name="compressed">
        ///   A buffer containing data that has been compressed with GZip.
        /// </param>
        ///
        /// <returns>The data in uncompressed form</returns>
        public static byte[] UncompressBuffer(byte[] compressed)
        {
            using (var input = new System.IO.MemoryStream(compressed))
            {
                System.IO.Stream decompressor =
                    new GZipStream( input, CompressionMode.Decompress );

                return ZlibBaseStream.UncompressBuffer(compressed, decompressor);
            }
        }
コード例 #5
0
ファイル: GZip.cs プロジェクト: tangyiyong/EpLibrary.cs
 /// <summary>
 /// Compress the given byte array
 /// </summary>
 /// <param name="raw">byte array to compress</param>
 /// <returns>compressed byte array</returns>
 public static byte[] Compress(byte[] raw)
 {
     using (MemoryStream memory = new MemoryStream())
     {
         using (GZipStream gzip = new GZipStream(memory, CompressionMode.Compress, true))
         {
             gzip.Write(raw, 0, raw.Length);
         }
         return memory.ToArray();
     }
 }
コード例 #6
0
ファイル: GZip.cs プロジェクト: tangyiyong/EpLibrary.cs
 /// <summary>
 /// Compress the given byte array
 /// </summary>
 /// <param name="raw">byte array to compress</param>
 /// <param name="offset">index to start compress</param>
 /// <param name="count">size of given byte</param>
 /// <returns>compressed byte array</returns>
 public static byte[] Compress(byte[] raw, int offset, int count)
 {
     using (MemoryStream memory = new MemoryStream())
     {
         using (GZipStream gzip = new GZipStream(memory, CompressionMode.Compress, true))
         {
             gzip.Write(raw, offset, count);
         }
         return memory.ToArray();
     }
 }