public void DecodeProgressiveJpeg_Orig <TPixel>(TestImageProvider <TPixel> provider)
            where TPixel : struct, IPixel <TPixel>
        {
            if (TestEnvironment.RunsOnCI && !TestEnvironment.Is64BitProcess)
            {
                // skipping to avoid OutOfMemoryException on CI
                return;
            }

            // Golang decoder is unable to decode these:
            if (PdfJsOnly.Any(fn => fn.Contains(provider.SourceFileOrDescription)))
            {
                return;
            }

            // For 32 bit test enviroments:
            provider.Configuration.MemoryManager = ArrayPoolMemoryManager.CreateWithModeratePooling();

            using (Image <TPixel> image = provider.GetImage(GolangJpegDecoder))
            {
                image.DebugSave(provider);

                provider.Utility.TestName = DecodeProgressiveJpegOutputName;
                image.CompareToReferenceOutput(
                    this.GetImageComparer(provider),
                    provider,
                    appendPixelTypeToFileName: false);
            }

            provider.Configuration.MemoryManager.ReleaseRetainedResources();
        }
示例#2
0
        public void QuantizeImageShouldPreserveMaximumColorPrecision <TPixel>(TestImageProvider <TPixel> provider, string quantizerName)
            where TPixel : struct, IPixel <TPixel>
        {
            provider.Configuration.MemoryManager = ArrayPoolMemoryManager.CreateWithModeratePooling();

            IQuantizer quantizer = GetQuantizer(quantizerName);

            using (Image <TPixel> image = provider.GetImage())
            {
                image.Mutate(c => c.Quantize(quantizer));
                image.DebugSave(provider, new PngEncoder()
                {
                    PngColorType = PngColorType.Palette
                }, testOutputDetails: quantizerName);
            }

            provider.Configuration.MemoryManager.ReleaseRetainedResources();

            //string path = TestEnvironment.CreateOutputDirectory("Quantize");

            //foreach (TestFile file in Files)
            //{
            //    using (Image<Rgba32> srcImage = Image.Load<Rgba32>(file.Bytes, out IImageFormat mimeType))
            //    {
            //        using (Image<Rgba32> image = srcImage.Clone())
            //        {
            //            using (FileStream output = File.OpenWrite($"{path}/Octree-{file.FileName}"))
            //            {
            //                image.Mutate(x => x.Quantize(KnownQuantizers.Octree));
            //                image.Save(output, mimeType);
            //            }
            //        }

            //        using (Image<Rgba32> image = srcImage.Clone())
            //        {
            //            using (FileStream output = File.OpenWrite($"{path}/Wu-{file.FileName}"))
            //            {
            //                image.Mutate(x => x.Quantize(KnownQuantizers.Wu));
            //                image.Save(output, mimeType);
            //            }
            //        }

            //        using (Image<Rgba32> image = srcImage.Clone())
            //        {
            //            using (FileStream output = File.OpenWrite($"{path}/Palette-{file.FileName}"))
            //            {
            //                image.Mutate(x => x.Quantize(KnownQuantizers.Palette));
            //                image.Save(output, mimeType);
            //            }
            //        }
            //    }
            //}
        }
示例#3
0
        public void JpegDecoder_IsNotBoundToSinglePixelType <TPixel>(TestImageProvider <TPixel> provider, bool useOldDecoder)
            where TPixel : struct, IPixel <TPixel>
        {
            if (SkipTest(provider))
            {
                return;
            }

            // For 32 bit test enviroments:
            provider.Configuration.MemoryManager = ArrayPoolMemoryManager.CreateWithModeratePooling();

            IImageDecoder decoder = useOldDecoder ? (IImageDecoder)GolangJpegDecoder : PdfJsJpegDecoder;

            using (Image <TPixel> image = provider.GetImage(decoder))
            {
                image.DebugSave(provider);

                provider.Utility.TestName = DecodeBaselineJpegOutputName;
                image.CompareToReferenceOutput(ImageComparer.Tolerant(BaselineTolerance), provider, appendPixelTypeToFileName: false);
            }

            provider.Configuration.MemoryManager.ReleaseRetainedResources();
        }
示例#4
0
        public void DecodeBaselineJpeg_Orig <TPixel>(TestImageProvider <TPixel> provider)
            where TPixel : struct, IPixel <TPixel>
        {
            if (SkipTest(provider))
            {
                return;
            }

            // For 32 bit test enviroments:
            provider.Configuration.MemoryManager = ArrayPoolMemoryManager.CreateWithModeratePooling();

            using (Image <TPixel> image = provider.GetImage(OrigJpegDecoder))
            {
                image.DebugSave(provider);
                provider.Utility.TestName = DecodeBaselineJpegOutputName;
                image.CompareToReferenceOutput(
                    this.GetImageComparer(provider),
                    provider,
                    appendPixelTypeToFileName: false);
            }

            provider.Configuration.MemoryManager.ReleaseRetainedResources();
        }