From 612541b891297b5fc52f4a00e97af33cb0d34d60 Mon Sep 17 00:00:00 2001 From: James Jackson-South Date: Tue, 20 Oct 2015 17:53:13 +1100 Subject: [PATCH] Add new test image for rewrite Former-commit-id: 894501ba723e1643831c3917acb0bd7e064fc75b Former-commit-id: a1bce60477ba5acdf54f4432bdb646bd95326f29 Former-commit-id: c539e6aeab3edf3ebde7658fece6972c321b7362 --- src/ImageProcessor/ImageProcessor.csproj | 1 + .../Samplers/Resamplers/Lanczos8Resampler.cs | 33 ++++++++++++++++++ src/ImageProcessor/Samplers/Resize.cs | 8 ++--- .../Processors/ProcessorTestBase.cs | 3 +- .../Processors/Samplers/SamplerTests.cs | 3 +- .../TestImages/Formats/Gif/rings.gif | Bin 0 -> 53435 bytes 6 files changed, 42 insertions(+), 6 deletions(-) create mode 100644 src/ImageProcessor/Samplers/Resamplers/Lanczos8Resampler.cs create mode 100644 tests/ImageProcessor.Tests/TestImages/Formats/Gif/rings.gif diff --git a/src/ImageProcessor/ImageProcessor.csproj b/src/ImageProcessor/ImageProcessor.csproj index bc3b47826c..2cdf7b7504 100644 --- a/src/ImageProcessor/ImageProcessor.csproj +++ b/src/ImageProcessor/ImageProcessor.csproj @@ -181,6 +181,7 @@ + diff --git a/src/ImageProcessor/Samplers/Resamplers/Lanczos8Resampler.cs b/src/ImageProcessor/Samplers/Resamplers/Lanczos8Resampler.cs new file mode 100644 index 0000000000..ac9065db40 --- /dev/null +++ b/src/ImageProcessor/Samplers/Resamplers/Lanczos8Resampler.cs @@ -0,0 +1,33 @@ +// +// Copyright © James South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace ImageProcessor.Samplers +{ + /// + /// The function implements the Lanczos kernel algorithm as described on + /// Wikipedia + /// + public class Lanczos8Resampler : IResampler + { + /// + public double Radius => 8; + + /// + public double GetValue(double x) + { + if (x < 0) + { + x = -x; + } + + if (x < 8) + { + return ImageMaths.SinC(x) * ImageMaths.SinC(x / 8f); + } + + return 0; + } + } +} diff --git a/src/ImageProcessor/Samplers/Resize.cs b/src/ImageProcessor/Samplers/Resize.cs index 811294eb55..ce146186b0 100644 --- a/src/ImageProcessor/Samplers/Resize.cs +++ b/src/ImageProcessor/Samplers/Resize.cs @@ -48,7 +48,7 @@ namespace ImageProcessor.Samplers int startX = targetRectangle.X; int endX = targetRectangle.Right; int right = (int)(this.Sampler.Radius + .5); - int left = -right; + int left = (-right) + 1; // Scaling factors double widthFactor = sourceWidth / (double)targetRectangle.Width; @@ -86,7 +86,7 @@ namespace ImageProcessor.Samplers for (int yy = left; yy <= right; yy++) { // Get Y cooefficient - double kernel1 = this.Sampler.GetValue(dy - yy); + double kernel1 = this.Sampler.GetValue(yy - dy); if (Math.Abs(kernel1) < Epsilon) { @@ -126,7 +126,7 @@ namespace ImageProcessor.Samplers } Bgra sourceColor = source[originX2, originY2]; - sourceColor = PixelOperations.ToLinear(sourceColor); + // sourceColor = PixelOperations.ToLinear(sourceColor); r += kernel2 * sourceColor.R; g += kernel2 * sourceColor.G; @@ -136,7 +136,7 @@ namespace ImageProcessor.Samplers } Bgra destinationColor = new Bgra(b.ToByte(), g.ToByte(), r.ToByte(), a.ToByte()); - destinationColor = PixelOperations.ToSrgb(destinationColor); + // destinationColor = PixelOperations.ToSrgb(destinationColor); target[x, y] = destinationColor; } } diff --git a/tests/ImageProcessor.Tests/Processors/ProcessorTestBase.cs b/tests/ImageProcessor.Tests/Processors/ProcessorTestBase.cs index 252425edf5..1804557faf 100644 --- a/tests/ImageProcessor.Tests/Processors/ProcessorTestBase.cs +++ b/tests/ImageProcessor.Tests/Processors/ProcessorTestBase.cs @@ -19,11 +19,12 @@ namespace ImageProcessor.Tests /// public static readonly List Files = new List { - //"../../TestImages/Formats/Jpg/Backdrop.jpg", + "../../TestImages/Formats/Jpg/Backdrop.jpg", "../../TestImages/Formats/Jpg/Calliphora.jpg", //"../../TestImages/Formats/Bmp/Car.bmp", //"../../TestImages/Formats/Png/cmyk.png", //"../../TestImages/Formats/Gif/leaf.gif" + "../../TestImages/Formats/Gif/rings.gif" // { "../../TestImages/Formats/Gif/ani.gif" }, // { "../../TestImages/Formats/Gif/ani2.gif" }, diff --git a/tests/ImageProcessor.Tests/Processors/Samplers/SamplerTests.cs b/tests/ImageProcessor.Tests/Processors/Samplers/SamplerTests.cs index 0cb6117b35..9b15f8013f 100644 --- a/tests/ImageProcessor.Tests/Processors/Samplers/SamplerTests.cs +++ b/tests/ImageProcessor.Tests/Processors/Samplers/SamplerTests.cs @@ -17,6 +17,7 @@ namespace ImageProcessor.Tests { "Bilinear", new TriangleResampler() }, { "NearestNeighbour", new BoxResampler() }, { "Lanczos3", new Lanczos3Resampler() }, + { "Lanczos8", new Lanczos8Resampler() }, { "MitchellNetravali", new MitchellNetravaliResampler() }, { "Hermite", new HermiteResampler() }, { "Spline", new SplineResampler() }, @@ -44,7 +45,7 @@ namespace ImageProcessor.Tests string filename = Path.GetFileNameWithoutExtension(file) + "-" + name + Path.GetExtension(file); using (FileStream output = File.OpenWrite($"Resized/{filename}")) { - image.Resize(200, 298, sampler).Save(output); + image.Resize(100, 100, sampler).Save(output); } Trace.WriteLine($"{name}: {watch.ElapsedMilliseconds}ms"); diff --git a/tests/ImageProcessor.Tests/TestImages/Formats/Gif/rings.gif b/tests/ImageProcessor.Tests/TestImages/Formats/Gif/rings.gif new file mode 100644 index 0000000000000000000000000000000000000000..53f2890fa0fcfbf7944e2e6040420cd4432c2a43 GIT binary patch literal 53435 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 N*MU4I#;eJ<{sYxsgw6l} literal 0 HcmV?d00001