示例#1
0
        public void MagickDecode_8BitDepthImage_IsEquivalentTo_SystemDrawingResult <TPixel>(TestImageProvider <TPixel> dummyProvider, string testImage)
            where TPixel : struct, IPixel <TPixel>
        {
            string path = TestFile.GetInputFileFullPath(testImage);

            var magickDecoder = new MagickReferenceDecoder();
            var sdDecoder     = new SystemDrawingReferenceDecoder();

            ImageComparer comparer = ImageComparer.Exact;

            using (var mImage = Image.Load <TPixel>(path, magickDecoder))
                using (var sdImage = Image.Load <TPixel>(path, sdDecoder))
                {
                    ImageSimilarityReport <TPixel, TPixel> report = comparer.CompareImagesOrFrames(mImage, sdImage);

                    mImage.DebugSave(dummyProvider);

                    if (TestEnvironment.IsWindows)
                    {
                        Assert.True(report.IsEmpty);
                    }
                }
        }
示例#2
0
        public void MagickDecode_16BitDepthImage_IsApproximatelyEquivalentTo_SystemDrawingResult <TPixel>(TestImageProvider <TPixel> dummyProvider, string testImage)
            where TPixel : struct, IPixel <TPixel>
        {
            string path = TestFile.GetInputFileFullPath(testImage);

            var magickDecoder = new MagickReferenceDecoder();
            var sdDecoder     = new SystemDrawingReferenceDecoder();

            // 1020 == 4 * 255 (Equivalent to manhattan distance of 1+1+1+1=4 in Rgba32 space)
            var comparer = ImageComparer.TolerantPercentage(1, 1020);

            using (var mImage = Image.Load <TPixel>(path, magickDecoder))
                using (var sdImage = Image.Load <TPixel>(path, sdDecoder))
                {
                    ImageSimilarityReport <TPixel, TPixel> report = comparer.CompareImagesOrFrames(mImage, sdImage);

                    mImage.DebugSave(dummyProvider);

                    if (TestEnvironment.IsWindows)
                    {
                        Assert.True(report.IsEmpty);
                    }
                }
        }