public void SaveToFile(string path) { if (savedData != null) { return; } using (var memstream = new MemoryStream()) using (var fstream = new FileStream(path, FileMode.Create)) using (var gzipstream = new GZipStream(fstream, CompressionMode.Compress, true)) { var orderedNodes = data.GetLeaves(pow, width, height).OrderBy(p => (p.pos & 0xFFFF)).ThenBy(p => (p.pos >> 16)); QuadtreeLeaves leaves = new QuadtreeLeaves(orderedNodes.ToArray(), width, height); new BinaryFormatter().Serialize(memstream, leaves); byte[] bytes = memstream.ToArray(); gzipstream.Write(bytes, 0, bytes.Length); //Color32[] colors = new Color32[100 * 100]; //for (int i = 0; i < colors.Length; i++) { // colors[i] = new Color32((byte)(UnityEngine.Random.value * 255), (byte)(UnityEngine.Random.value * 255), (byte)(UnityEngine.Random.value * 255), 255); //} //mc = new MyClass(colors, 100, 100); //new BinaryFormatter().Serialize(gzipstream, mc); } }
//MyClass mc; public QTTexture1() { savedData = null; data = new Quadtree1(); width = 0; height = 0; pow = 0; }
public void SaveToFile(string path) { BinaryFormatter formatter = new BinaryFormatter(); FileStream stream = new FileStream(path, FileMode.Create); QuadtreeLeaves leaves = new QuadtreeLeaves(data.GetLeaves(pow), width, height, pow); formatter.Serialize(stream, leaves); stream.Close(); }
public void LoadTexture(string path) { if (File.Exists(path)) { byte[] file = File.ReadAllBytes(path); using (var memstream = new MemoryStream(file)) using (var gzipstream = new GZipStream(memstream, CompressionMode.Decompress, true)) { byte[] buffer = new byte[4096]; using (MemoryStream stream = new MemoryStream()) { int count = 0; do { count = gzipstream.Read(buffer, 0, buffer.Length); if (count != 0) { stream.Write(buffer, 0, count); } } while (count != 0); stream.Position = 0; savedData = (QuadtreeLeaves)(new BinaryFormatter().Deserialize(stream)); width = savedData.width; height = savedData.height; } //savedData = (QuadtreeLeaves)(new BinaryFormatter().Deserialize(gzipstream)); //width = savedData.width; //height = savedData.height; //mc = (MyClass)(new BinaryFormatter().Deserialize(gzipstream)); //width = mc.GetWidth(); //height = mc.GetHeight(); } //BinaryFormatter formatter = new BinaryFormatter(); //FileStream stream = new FileStream(path, FileMode.Open); //savedData = (QuadtreeLeaves)formatter.Deserialize(stream); //width = savedData.width; //height = savedData.height; //stream.Close(); } else { Debug.LogError("QT Image not found"); } }
public static QuadtreeLeaves loadTexture(string path) { if (File.Exists(path)) { BinaryFormatter formatter = new BinaryFormatter(); FileStream stream = new FileStream(path, FileMode.Open); QuadtreeLeaves qtl = formatter.Deserialize(stream) as QuadtreeLeaves; stream.Close(); return(qtl); } else { Debug.LogError("QT Image not found"); return(null); } }