public static Image <TPixel> CompareToOriginal <TPixel>( this Image <TPixel> image, ITestImageProvider provider, ImageComparer comparer, IImageDecoder referenceDecoder = null) where TPixel : unmanaged, IPixel <TPixel> { string path = TestImageProvider <TPixel> .GetFilePathOrNull(provider); if (path == null) { throw new InvalidOperationException("CompareToOriginal() works only with file providers!"); } var testFile = TestFile.Create(path); referenceDecoder = referenceDecoder ?? TestEnvironment.GetReferenceDecoder(path); using (var original = Image.Load <TPixel>(testFile.Bytes, referenceDecoder)) { comparer.VerifySimilarity(original, image); } return(image); }
public static Image <TPixel> CompareToOriginal <TPixel>( this Image <TPixel> image, ITestImageProvider provider, ImageComparer comparer) where TPixel : struct, IPixel <TPixel> { string path = TestImageProvider <TPixel> .GetFilePathOrNull(provider); if (path == null) { throw new InvalidOperationException("CompareToOriginal() works only with file providers!"); } var testFile = TestFile.Create(path); IImageDecoder referenceDecoder = TestEnvironment.GetReferenceDecoder(path); IImageFormat format = TestEnvironment.GetImageFormat(path); IImageDecoder defaultDecoder = Configuration.Default.FindDecoder(format); //if (referenceDecoder.GetType() == defaultDecoder.GetType()) //{ // throw new InvalidOperationException($"Can't use CompareToOriginal(): no actual reference decoder registered for {format.Name}"); //} using (var original = Image.Load <TPixel>(testFile.Bytes, referenceDecoder)) { comparer.VerifySimilarity(original, image); } return(image); }