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); }
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)); }
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; }
public bool IsSameData(IImageDetails other) => Original.Hash == other.Original.Hash;