Ejemplo n.º 1
0
        /// <summary>
        /// Compress stream using defleate algorithm
        /// </summary>
        /// <param name="stream">Stream to compress</param>
        /// <param name="output">Output streamm</param>
        /// <param name="count">Count of bytes to compress</param>
        /// <param name="offset">Offset on the output stream</param>
        /// <param name="report">Progress report handler</param>
        public static void CompressTo(this Stream stream, Stream output, long count, long offset = 0, ProgressReportEventHandler report = null)
        {
            if (output == null)
            {
                throw new ArgumentNullException("output");
            }

            output.Position = offset;

            using (DeflateStream deflateStream = new DeflateStream(output, CompressionMode.Compress, true))
            {
                deflateStream.CopyFrom(stream, count, report);
            }
        }