/*
* Created by SharpDevelop.
* User: Petteri Kautonen
* Date: 26.11.2006
* Time: 20:58
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.IO;
using ICSharpCode.SharpZipLib.Zip;
using ICSharpCode.SharpZipLib.Zip.Compression;
using ICSharpCode.SharpZipLib.Zip.Compression.Streams;
namespace VPKSoft
{
/// <summary>
/// Description of SimpleCompressor.
/// </summary>
public class SimpleCompressor
{
public SimpleCompressor()
{
}
public static bool SkipHeaders = false;
public static byte [] Compress(byte [] Bytes)
{
MemoryStream Ms = new MemoryStream();
Deflater Def = new Deflater(9, SkipHeaders);
DeflaterOutputStream Dos = new DeflaterOutputStream(Ms, Def);
Dos.Write(Bytes, 0, Bytes.Length);
Dos.Flush();
Dos.Finish();
Dos.Close();
return Ms.GetBuffer();
}
public static byte [] Decompress(byte [] Bytes)
{
MemoryStream Ms = new MemoryStream();
MemoryStream Ms2 = new MemoryStream();
Ms.Write(Bytes, 0, Bytes.Length);
Ms.Position = 0;
Inflater Inf = new Inflater(SkipHeaders);
InflaterInputStream Iis = new InflaterInputStream(Ms, Inf);
byte [] Buffer = new byte [Bytes.Length];
int Length;
do {
Length = Iis.Read(Buffer, 0, Buffer.Length);
Ms2.Write(Buffer, 0, Length);
} while (Length > 0);
Iis.Close();
Ms.Close();
return Ms2.GetBuffer();
}
}
}