/// <summary> /// To get Unique files /// </summary> /// <param name="fileList"></param> /// <returns></returns> public List <string> GetUniqueImages(List <string> fileList) { List <string> PathList = null; PathList = new DataLayer.ModelClasses.Image().GetAllImagePath(); if (PathList.Count() <= 0) { return(fileList); } fileList.RemoveAll(p => PathList.Contains(p)); return(fileList); }
/// <summary> /// Reason : To get all similar files from folder with percentage of similarity for selected file. /// compare files from folder which are having length of file +- 100000 of original file. /// </summary> /// <param name="inputFilePath">Input file path of image</param> /// <param name="length">Length of image file that varies to compare with another file</param> /// <param name="percentageString"> returns percentage of similarities of matched images in string seperated by comma(,)</param> public void GetAllSimilarImages(string inputFilePath, string appStartPath, double length, ref List <DuplicateImageDetails> duplicateImageList) { { try { if (!File.Exists(inputFilePath)) { return; } DuplicateImageDetails imgOriginalFile = new DuplicateImageDetails(); imgOriginalFile.FilePath = inputFilePath; imgOriginalFile.FileName = inputFilePath.Contains("\\") ? inputFilePath.Split('\\')[inputFilePath.Split('\\').Count() - 1] : inputFilePath; imgOriginalFile.Percentage = "Original Selected File"; duplicateImageList.Add(imgOriginalFile); int count = 0; FileInfo fileInfo = new FileInfo(inputFilePath); DataLayer.EntityModel.Image metadataInputImgObj = new DataLayer.EntityModel.Image(); //Get metadata of input file _faceDetection = new FaceDetection(appStartPath); _imgGrabber = new ImageGrabber(); metadataInputImgObj = GetImageMetadata(inputFilePath, appStartPath); var bestMatchImageList = new DataLayer.ModelClasses.Image().GetImagesByBestMatch(metadataInputImgObj); // for Image similarity percentage need to compare both images foreach (var infoObj in bestMatchImageList) { DuplicateImageDetails duplicateImageCheck = new DuplicateImageDetails(); duplicateImageCheck.FilePath = infoObj.ImagePath; duplicateImageCheck.FileName = infoObj.ImagePath.Contains("\\") ? infoObj.ImagePath.Split('\\')[infoObj.ImagePath.Split('\\').Count() - 1] : infoObj.ImagePath; duplicateImageCheck.Percentage = ""; duplicateImageList.Add(duplicateImageCheck); count++; } } catch (Exception) { } } }
/// <summary> /// Reason : To get all similar files from folder with percentage of similarity for selected file. /// compare files from folder which are having length of file +- 100000 of original file. /// </summary> /// <param name="inputFilePath">Input file path of image</param> /// <param name="length">Length of image file that varies to compare with another file</param> /// <param name="percentageString"> returns percentage of similarities of matched images in string seperated by comma(,)</param> public void GetAllSimilarImages(string inputFilePath,string appStartPath, double length, ref List<DuplicateImageDetails> duplicateImageList) { { try { DuplicateImageDetails imgOriginalFile = new DuplicateImageDetails(); imgOriginalFile.FilePath = inputFilePath; imgOriginalFile.FileName = inputFilePath.Contains("\\") ? inputFilePath.Split('\\')[inputFilePath.Split('\\').Count() - 1] : inputFilePath; imgOriginalFile.Percentage = "Original Selected File"; duplicateImageList.Add(imgOriginalFile); int count = 0; FileInfo fileInfo = new FileInfo(inputFilePath); DataLayer.EntityModel.Image metadataInputImgObj = new DataLayer.EntityModel.Image(); //Get metadata of input file _faceDetection = new FaceDetection(appStartPath); _imgGrabber = new ImageGrabber(); metadataInputImgObj = GetImageMetadata(inputFilePath, appStartPath); var bestMatchImageList = new DataLayer.ModelClasses.Image().GetImagesByBestMatch(metadataInputImgObj); // for Image similarity percentage need to compare both images foreach (var infoObj in bestMatchImageList) { DuplicateImageDetails duplicateImageCheck = new DuplicateImageDetails(); duplicateImageCheck.FilePath = infoObj.ImagePath; duplicateImageCheck.FileName = infoObj.ImagePath.Contains("\\") ? infoObj.ImagePath.Split('\\')[infoObj.ImagePath.Split('\\').Count() - 1] : infoObj.ImagePath; duplicateImageCheck.Percentage = ""; duplicateImageList.Add(duplicateImageCheck); count++; } } catch (Exception ex) { Console.WriteLine(ex.Message); } } }
/// <summary> /// To get Unique files /// </summary> /// <param name="fileList"></param> /// <returns></returns> public List<string> GetUniqueImages(List<string> fileList) { List<string> PathList = null; PathList = new DataLayer.ModelClasses.Image().GetAllImagePath(); if (PathList.Count() <= 0) return fileList; fileList.RemoveAll(p => PathList.Contains(p)); return fileList; }