private IEnumerator SaveImage() { if (flash == null) { flash = GameObject.Instantiate(view.gameObject, view.transform.parent, false).GetComponent <Image>(); flash.color = Color.clear; flash.transform.SetSiblingIndex(flash.transform.parent.childCount - 1); flash.material = null; } flash.gameObject.SetActive(false); view.transform.GetChild(0).gameObject.SetActive(false); check.gameObject.SetActive(false); yield return(new WaitForEndOfFrame()); Rect snap = RectTransformToScreenSpace(view.rectTransform); Texture2D ss = new Texture2D((int)snap.width, (int)snap.height, TextureFormat.RGB24, false); ss.ReadPixels(snap, 0, 0); ss.Apply(); yield return(new WaitForEndOfFrame()); view.transform.GetChild(0).gameObject.SetActive(true); check.gameObject.SetActive(true); if (flash != null) { flash.gameObject.SetActive(true); } LeanTween.value(Camera.main.gameObject, (float val) => { if (flash != null) { flash.color = new Color(0, 0, 0, val); } }, 0, 0.5f, 0.15f).setEaseInQuad().setLoopPingPong(1).setOnComplete(() => { if (flash != null) { Destroy(flash.gameObject); } }); // Save the screenshot to Gallery/Photos // NativeGallery.SaveImageToGallery(persis, ss, callback); MobileMedia.SaveImage(ss, "Live Portrait Maker", new FilePathName().GetPngFileName(), MobileMedia.ImageFormat.PNG); Destroy(ss); SeeEverything(); }
IEnumerator SaveVidFile() { while (saved == false) { yield return(null); } saved = false; byte[] read_ = File.ReadAllBytes(vidPath); Debug.Log("SAVING GIF"); MobileMedia.SaveBytes(read_, "Live Portrait Maker", "LPM{0}", ".gif", true); Directory.Delete(vidPath); }