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);
        }
    }