コード例 #1
0
        /// <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);
        }
コード例 #2
0
 /// <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;
     }
 }