Пример #1
0
 public static int GetSmallestSize(this IImageDetails x, IImageDetails y, int largestAllowed = 512)
 {
     largestAllowed = Math.Min(largestAllowed, x.Original.Width);
     largestAllowed = Math.Min(largestAllowed, x.Original.Height);
     largestAllowed = Math.Min(largestAllowed, y.Original.Width);
     largestAllowed = Math.Min(largestAllowed, y.Original.Height);
     return(largestAllowed);
 }
Пример #2
0
        public async Task <bool> IsSimilarAsync(IImageDetails other, double similarity = 1)
        {
            if (!Thumbnail.IsSimilar(other.Thumbnail, similarity) || !(other is IFileImageDetails fileOther))
            {
                return(false);
            }

            //Check once again but with a higher resolution
            var size = this.GetSmallestSize(fileOther);
            var x    = await CreateAsync(Source, size).CAF();

            var y = await CreateAsync(fileOther.Source, size).CAF();

            return(x.Thumbnail.IsSimilar(y.Thumbnail, similarity));
        }
Пример #3
0
        private void AnalyseFiles(
            string[] files,
            ILocationManager locationManager,
            IClsNmbManager clsNmbManager,
            IFaultManager faultManager)
        {
            //List<IImageDetails> images = new List<IImageDetails>();

            for (int index = 0; index < files.Length; ++index)
            {
                IImageDetails image =
                    ImageDetailFactory.AnalyseImageDetails(
                        files[index],
                        locationManager,
                        clsNmbManager,
                        faultManager);

                this.images.Add(image);
            }

            //return this.images;
        }
Пример #4
0
 public bool IsSameData(IImageDetails other)
 => Original.Hash == other.Original.Hash;