QTTexture Compress()
    {
        QTTexture qt = new QTTexture();

        qt.loadTexture(inImg, tolerance);

        return(qt);
    }
 void FixedUpdate()
 {
     //counter += Time.fixedDeltaTime;
     if (counter >= limit)
     {
         counter    = 0;
         tolerance += 1;
         QTTexture qt = Compress();
         textureOutput = qt.ToTexture2D();
         mat.SetTexture(Shader.PropertyToID("_MainTex"), textureOutput);
     }
 }
    private void Start()
    {
        float     temp = Time.realtimeSinceStartup;
        QTTexture qt   = Compress();

        Debug.Log("Compression Time: " + (Time.realtimeSinceStartup - temp));
        temp          = Time.realtimeSinceStartup;
        textureOutput = qt.ToTexture2D();
        qt.SaveToFile(Application.persistentDataPath + "/" + filename + ".qtimg");
        Debug.Log("Save Time: " + (Time.realtimeSinceStartup - temp));
        mat.SetTexture(Shader.PropertyToID("_MainTex"), textureOutput);
        Debug.Log(Application.persistentDataPath);
    }
    public static QTTexture loadTexture(string path)
    {
        if (File.Exists(path))
        {
            BinaryFormatter formatter = new BinaryFormatter();
            FileStream      stream    = new FileStream(path, FileMode.Open);

            QTTexture qtt = formatter.Deserialize(stream) as QTTexture;

            stream.Close();
            return(qtt);
        }
        else
        {
            Debug.LogError("QT Image not found");
            return(null);
        }
    }