/// <summary> /// Поиск изображений в выбранной папке /// </summary> /// <param name="pathFolder">путь к папке</param> /// <returns>коллекция изображений</returns> public List <PHashAndDataImage> SearchImagesInFolder(string pathFolder) { var newImagesList = new List <PHashAndDataImage>(); var photoFullFilesPath = Path.Combine( Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), pathFolder); var allFilesToFolder = new DirectoryInfo(photoFullFilesPath).GetFiles().ToList(); foreach (var item in allFilesToFolder) { if (IsImage(item.FullName)) { var imageBitmap = new Bitmap(item.FullName); var image = new PHashAndDataImage { Name = Path.ChangeExtension(item.Name, ".jpg"), DateOfCreation = item.CreationTime, Resolution = imageBitmap.Size, ImageBitmap = imageBitmap, }; newImagesList.Add(image); } } return(newImagesList); }
/// <summary> /// Добавление перцептивного хеша в объект класса PHashAndDataImage /// </summary> /// <param name="imageData">Данные о изображении без перцептивного хеша</param> public void GetPerceptualHashOfImageData(PHashAndDataImage imageData) { if (imageData.PerceptualHash is null && imageData.PathImageFile is null && imageData.ImageBitmap != null && imageData.Resolution.Width > 900) { var pHash = GetPerceptualHash(new Bitmap(imageData.ImageBitmap, 8, 8)); imageData.PerceptualHash = pHash; } }