43 lines
1.1 KiB
C#
43 lines
1.1 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
|
|
namespace UniversalEditor.Compression.Modules.Zlib
|
|
{
|
|
public class ZlibCompressionModule : CompressionModule
|
|
{
|
|
public override string Name
|
|
{
|
|
get { return "zlib"; }
|
|
}
|
|
|
|
protected override void CompressInternal(System.IO.Stream inputStream, System.IO.Stream outputStream)
|
|
{
|
|
Internal.ZOutputStream zout = new Internal.ZOutputStream(outputStream, 5);
|
|
|
|
byte[] buffer = new byte[2048];
|
|
while (!inputStream.get_EndOfStream())
|
|
{
|
|
inputStream.Read(buffer, 0, buffer.Length);
|
|
zout.Write(buffer, 0, buffer.Length);
|
|
}
|
|
zout.Flush();
|
|
zout.Close();
|
|
}
|
|
|
|
protected override void DecompressInternal(System.IO.Stream inputStream, System.IO.Stream outputStream, int inputLength, int outputLength)
|
|
{
|
|
int data = 0;
|
|
int stopByte = -1;
|
|
Internal.ZInputStream inZStream = new Internal.ZInputStream(inputStream);
|
|
while (stopByte != (data = inZStream.Read()))
|
|
{
|
|
byte _dataByte = (byte)data;
|
|
outputStream.WriteByte(_dataByte);
|
|
}
|
|
inZStream.Close();
|
|
}
|
|
}
|
|
}
|