데이터 압축(SharpZip)
Unity3D/Script / 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/
반응형
'Unity3D > Script' 카테고리의 다른 글
[펌] www 클래스, UnityWebRequest 클래스 사용하기(HTTP 서버에 데이터 가져오기, 보내기 등) (0) | 2020.12.22 |
---|---|
[펌] New Unity Input System: Getting Started (0) | 2020.12.22 |
[링크] Unity 자이로 & 가속도 센서 관련 (0) | 2020.06.09 |
[Unity] 회전 없이 유도(Guided/Homing) 이동 로직 (0) | 2020.05.26 |
[펌] Unity 런타임 중 AndroidManifest.xml에서 meta-data 정보 읽어오기. (0) | 2019.12.04 |