Unity3D/Script
데이터 압축(SharpZip)
blueasa
2020. 8. 11. 11:52
유니티 데이터 통신 압축용으로 사용 중.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using ICSharpCode.SharpZipLib.BZip2;
public class ZipHelper
{
public static byte[] Zip(byte[] data)
{
return Zip(data, 0, data.Length);
}
public static byte[] Unzip(byte[] data)
{
return Unzip(data, 0, data.Length);
}
public static byte[] Zip(byte[] data, int offset, int size)
{
MemoryStream inStream = new MemoryStream(data, offset, size);
MemoryStream outStream = new MemoryStream();
BZip2.Compress(inStream, outStream, false, 3);
byte[] result = outStream.ToArray();
inStream.Close();
outStream.Close();
return result;
}
public static byte[] Unzip(byte[] data, int offset, int size)
{
MemoryStream inStream = new MemoryStream(data, offset, size);
MemoryStream outStream = new MemoryStream();
BZip2.Decompress(inStream, outStream, false);
byte[] result = outStream.ToArray();
inStream.Close();
outStream.Close();
return result;
}
}
// 예제
//class Program
//{
// static void Main(string[] args)
// {
// byte[] array = new byte[1000];
// for (int i = 0; i < array.Length; i++)
// {
// array[i] = (byte)(i % 255);
// }
// byte[] compress = ZipHelper.Zip(array);
// byte[] decompress = ZipHelper.Unzip(array);
// }
//}
[SharpZip dll 다운로드] https://www.nuget.org/packages/SharpZipLib/
반응형