public IEnumerator ShowCroppedFaces() { croppedFaceDatas = CroppedFaceData.LoadData(faceDataFile); if (croppedFaceDatas != null) { foreach (CroppedFaceData c in croppedFaceDatas) { GameObject g = Instantiate(facePrefab, croppedFaceContainer.transform); Image img = g.GetComponent <Image>(); CroppedFaceProperties cfp = g.GetComponent <CroppedFaceProperties>(); cfp.imageName = c.imageName; cfp.imageIndex = croppedFaceDatas.IndexOf(c); cfp.InitFaceProperties(c); faces.Add(g); print(string.Format("loading image : {0}", c.imageName)); StartCoroutine(LoadImageFromDisk(img, c.imageName)); } } Invoke("HideLoadingPanelOnly", .1f); yield return(null); }
public static List <CroppedFaceData> DeleteCroppedFace(CroppedFaceData c, List <CroppedFaceData> cd, string saveFileName) { List <CroppedFaceData> origList = cd; try { string dataPath = Application.persistentDataPath; if (Application.platform != RuntimePlatform.OSXPlayer) { dataPath += "/croppedfaces"; } if (!Directory.Exists(dataPath)) { Directory.CreateDirectory(dataPath); } string finalImagePath = Path.Combine(dataPath, "faceimages"); if (!Directory.Exists(finalImagePath)) { Directory.CreateDirectory(finalImagePath); } finalImagePath = Path.Combine(finalImagePath, c.imageName); cd.Remove(c); if (File.Exists(finalImagePath)) { MonoBehaviour.print(string.Format("Deleting : {0} as it exist", finalImagePath)); File.Delete(finalImagePath); MonoBehaviour.print("file deleted successfully"); } SaveCroppedFaceFromData(cd, saveFileName); return(cd); } catch (Exception e) { MonoBehaviour.print(string.Format("Error occured when trying to save data from list : {0}", e)); return(origList); } }
public void Copy(ref CroppedFaceData cd) { cd = new CroppedFaceData(); cd.imageName = this.imageName; cd.saveFaceHash = this.saveFaceHash; cd.scale = new float[scale.Length]; cd.sizeDelta = new float[sizeDelta.Length]; cd.position = new float[position.Length]; cd.rotation = new float[rotation.Length]; cd.faceColor = new float[faceColor.Length]; for (int i = 0; i < scale.Length; i++) { cd.scale[i] = this.scale[i]; } for (int i = 0; i < sizeDelta.Length; i++) { cd.sizeDelta[i] = this.sizeDelta[i]; } for (int i = 0; i < position.Length; i++) { cd.position[i] = this.position[i]; } for (int i = 0; i < rotation.Length; i++) { cd.rotation[i] = this.rotation[i]; } for (int i = 0; i < faceColor.Length; i++) { cd.faceColor[i] = this.faceColor[i]; } }
public void InitFaceProperties(CroppedFaceData c) { dataPath = Application.persistentDataPath; if (Application.platform != RuntimePlatform.OSXPlayer) { dataPath += "/croppedfaces"; } finalSavePath = Path.Combine(dataPath, "faceimages"); finalSavePath = Path.Combine(finalSavePath, imageName); cfd = c; faceHash = cfd.saveFaceHash; if (face != null && face2 != null) { isInitialized = true; GetComponent <Image>().color = new Color(c.faceColor[0], c.faceColor[1], c.faceColor[2], c.faceColor[3]); } else { isInitialized = false; } if (gameController.faceHash == faceHash || gameController.faceHash2 == faceHash) { faceInUse = true; ShowRemoveButton(true); if (gameController.faceHash == faceHash) { gameController.loadedFaceIndex = imageIndex; } else if (gameController.faceHash2 == faceHash) { gameController.loadedFaceIndex2 = imageIndex; } } }
public static int SaveCroppedFaceDict(string saveDataFileName, CroppedFaceData cfd, RawImage rwimg) { try { MonoBehaviour.print(Application.persistentDataPath); MonoBehaviour.print(Application.persistentDataPath); string dataPath = Application.persistentDataPath; if (Application.platform != RuntimePlatform.OSXPlayer) { dataPath += "/croppedfaces"; } string finalSavePath = Path.Combine(dataPath, saveDataFileName); MonoBehaviour.print(string.Format("Final Save path : {0}", finalSavePath)); if (File.Exists(finalSavePath)) { MonoBehaviour.print("file exist,saving data"); Dictionary <string, CroppedFaceData> croppedFaceFiles = new Dictionary <string, CroppedFaceData>(); croppedFaceFiles = LoadDataDict(saveDataFileName);; int totalScavedFaces = croppedFaceFiles.Count; MonoBehaviour.print(string.Format("total faces :{0}", totalScavedFaces)); foreach (string s in croppedFaceFiles.Keys) { MonoBehaviour.print(string.Format("loaded cropped face file : {0}", s)); } if (totalScavedFaces < 5) { FileStream fileStream; fileStream = new FileStream(finalSavePath, FileMode.Open, FileAccess.Write); BinaryFormatter b = new BinaryFormatter(); string save_name = string.Format("croppedface_{0}", croppedFaceFiles.Count); croppedFaceFiles.Add(save_name, cfd); MonoBehaviour.print(string.Format("total faces : {0}", croppedFaceFiles.Count)); foreach (string s in croppedFaceFiles.Keys) { MonoBehaviour.print(string.Format("writing cropped face file : {0}", s)); } b.Serialize(fileStream, croppedFaceFiles); fileStream.Flush(); fileStream.Close(); string saveImageName = Path.Combine(dataPath, "faceimages"); saveImageName = Path.Combine(saveImageName, save_name + "png"); File.WriteAllBytes(saveImageName, (rwimg.texture as Texture2D).EncodeToPNG()); MonoBehaviour.print("face is saved"); return(1); } else { return(0); } } else { MonoBehaviour.print("Does Not Exist , Creating new File"); Dictionary <string, CroppedFaceData> croppedFaceFiles = new Dictionary <string, CroppedFaceData>(); MonoBehaviour.print(string.Format(" total faces :{0}", croppedFaceFiles.Count)); string save_name = string.Format("croppedface_{0}", croppedFaceFiles.Count); croppedFaceFiles.Add(save_name, cfd); foreach (string s in croppedFaceFiles.Keys) { MonoBehaviour.print(string.Format("writing first cropped face file : {0}", s)); } FileStream fileStream = new FileStream(finalSavePath, FileMode.Create, FileAccess.Write); BinaryFormatter b = new BinaryFormatter(); b.Serialize(fileStream, croppedFaceFiles); fileStream.Flush(); fileStream.Close(); string saveImageName = Path.Combine(dataPath, "faceimages"); saveImageName = Path.Combine(saveImageName, save_name + "png"); File.WriteAllBytes(saveImageName, (rwimg.texture as Texture2D).EncodeToPNG()); MonoBehaviour.print("face is saved"); return(1); } } catch (Exception e) { MonoBehaviour.print("error : " + e); return(-1); } }
public static int SaveCroppedFace(string saveDataFileName, CroppedFaceData cfd, RawImage rwimg) { try { MonoBehaviour.print(Application.persistentDataPath); MonoBehaviour.print(Application.persistentDataPath); string dataPath = Application.persistentDataPath; if (Application.platform != RuntimePlatform.OSXPlayer) { dataPath += "/croppedfaces"; } if (!Directory.Exists(dataPath)) { Directory.CreateDirectory(dataPath); } string finalSavePath = Path.Combine(dataPath, saveDataFileName); MonoBehaviour.print(string.Format("Final Save path : {0}", finalSavePath)); if (File.Exists(finalSavePath)) { MonoBehaviour.print("file exist,saving data"); List <CroppedFaceData> croppedFaceFiles = new List <CroppedFaceData>(); croppedFaceFiles = LoadData(saveDataFileName); int totalScavedFaces = croppedFaceFiles.Count; MonoBehaviour.print(string.Format("total faces :{0}", totalScavedFaces)); if (totalScavedFaces < 5) { FileStream fileStream; fileStream = new FileStream(finalSavePath, FileMode.Create, FileAccess.Write); BinaryFormatter b = new BinaryFormatter(); string save_name = string.Format("croppedface_{0}.png", (int)(UnityEngine.Random.Range(0, 9999))); cfd.imageName = save_name; croppedFaceFiles.Add(cfd); MonoBehaviour.print(string.Format("total faces : {0}", croppedFaceFiles.Count)); b.Serialize(fileStream, croppedFaceFiles); fileStream.Flush(); fileStream.Close(); string saveImageName = Path.Combine(dataPath, "faceimages"); if (!Directory.Exists(saveImageName)) { Directory.CreateDirectory(saveImageName); } saveImageName = Path.Combine(saveImageName, save_name); File.WriteAllBytes(saveImageName, (rwimg.texture as Texture2D).EncodeToPNG()); MonoBehaviour.print("face is saved"); return(1); } else { return(0); } } else { MonoBehaviour.print("Does Not Exist , Creating new File"); List <CroppedFaceData> croppedFaceFiles = new List <CroppedFaceData>(); MonoBehaviour.print(string.Format(" total faces :{0}", croppedFaceFiles.Count)); string save_name = string.Format("croppedface_{0}.png", (int)(UnityEngine.Random.Range(0, 9999))); cfd.imageName = save_name; croppedFaceFiles.Add(cfd); FileStream fileStream = new FileStream(finalSavePath, FileMode.Create, FileAccess.Write); BinaryFormatter b = new BinaryFormatter(); b.Serialize(fileStream, croppedFaceFiles); fileStream.Flush(); fileStream.Close(); fileStream.Dispose(); string saveImageName = Path.Combine(dataPath, "faceimages"); if (!Directory.Exists(saveImageName)) { Directory.CreateDirectory(saveImageName); } saveImageName = Path.Combine(saveImageName, save_name); File.WriteAllBytes(saveImageName, (rwimg.texture as Texture2D).EncodeToPNG()); MonoBehaviour.print("face is saved"); return(1); } } catch (Exception e) { MonoBehaviour.print("error : " + e); return(-1); } }
public void DeleteCroppedFaceData(CroppedFaceData c) { CroppedFaceData.DeleteCroppedFace(c, croppedFaceDatas, faceDataFile); StartCoroutine(ResetAllCroppedFaces()); }