diff --git a/src/ImageSharp/Common/Helpers/ImageMaths.cs b/src/ImageSharp/Common/Helpers/ImageMaths.cs
index 8cd34f540..d672cfd5a 100644
--- a/src/ImageSharp/Common/Helpers/ImageMaths.cs
+++ b/src/ImageSharp/Common/Helpers/ImageMaths.cs
@@ -2,9 +2,7 @@
// Licensed under the Apache License, Version 2.0.
using System;
-using System.Numerics;
using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
using SixLabors.ImageSharp.PixelFormats;
using SixLabors.Primitives;
@@ -33,6 +31,7 @@ namespace SixLabors.ImageSharp
///
/// Determine the Least Common Multiple (LCM) of two numbers.
+ /// TODO: This method might be useful for building a more compact
///
public static int LeastCommonMultiple(int a, int b)
{
diff --git a/src/ImageSharp/Processing/Processors/Transforms/ResizeProcessor.cs b/src/ImageSharp/Processing/Processors/Transforms/ResizeProcessor.cs
index 9481be48b..753863dec 100644
--- a/src/ImageSharp/Processing/Processors/Transforms/ResizeProcessor.cs
+++ b/src/ImageSharp/Processing/Processors/Transforms/ResizeProcessor.cs
@@ -263,7 +263,7 @@ namespace SixLabors.ImageSharp.Processing.Processors.Transforms
ResizeKernel window = this.horizontalKernelMap.Kernels[x - startX];
Unsafe.Add(ref firstPassBaseRef, x * sourceHeight) =
- window.ConvolveExpand(tempRowSpan, sourceX).UnPremultiply();
+ window.ConvolveExpand(tempRowSpan, sourceX);
}
}
else
diff --git a/tests/ImageSharp.Tests/Processing/Processors/Transforms/ResizeTests.cs b/tests/ImageSharp.Tests/Processing/Processors/Transforms/ResizeTests.cs
index c74b40622..ca43432e7 100644
--- a/tests/ImageSharp.Tests/Processing/Processors/Transforms/ResizeTests.cs
+++ b/tests/ImageSharp.Tests/Processing/Processors/Transforms/ResizeTests.cs
@@ -18,8 +18,8 @@ namespace SixLabors.ImageSharp.Tests.Processing.Processors.Transforms
{
public static readonly string[] CommonTestImages = { TestImages.Png.CalliphoraPartial };
- private static readonly ImageComparer ValidatorComparer = ImageComparer.TolerantPercentage(0.069F);
-
+ private static readonly ImageComparer ValidatorComparer = ImageComparer.TolerantPercentage(0.07F);
+
public static readonly TheoryData AllReSamplers =
new TheoryData
{
@@ -65,20 +65,16 @@ namespace SixLabors.ImageSharp.Tests.Processing.Processors.Transforms
public void Resize_WorksWithAllParallelismLevels(TestImageProvider provider, int maxDegreeOfParallelism)
where TPixel : struct, IPixel
{
- if (maxDegreeOfParallelism >= 0)
- {
- provider.Configuration.MaxDegreeOfParallelism = maxDegreeOfParallelism;
- }
+ provider.Configuration.MaxDegreeOfParallelism =
+ maxDegreeOfParallelism > 0 ? maxDegreeOfParallelism : Environment.ProcessorCount;
- using (Image image = provider.GetImage())
- {
- SizeF newSize = image.Size() * 0.5f;
- image.Mutate(x => x.Resize((Size)newSize, false));
- FormattableString details = $"MDP{maxDegreeOfParallelism}";
+ FormattableString details = $"MDP{maxDegreeOfParallelism}";
- image.DebugSave(provider, details);
- //image.CompareToReferenceOutput(ImageComparer.TolerantPercentage(0.005f), provider, details);
- }
+ provider.RunValidatingProcessorTest(
+ x => x.Resize(x.GetCurrentSize() / 2),
+ details,
+ appendPixelTypeToFileName: false,
+ appendSourceFileOrDescription: false);
}
[Theory]
@@ -100,16 +96,9 @@ namespace SixLabors.ImageSharp.Tests.Processing.Processors.Transforms
public void Resize_IsNotBoundToSinglePixelType(TestImageProvider provider)
where TPixel : struct, IPixel
{
- using (Image image = provider.GetImage())
- {
- image.Mutate(x => x.Resize(image.Width / 2, image.Height / 2, true));
-
- image.DebugSave(provider);
- image.CompareToReferenceOutput(ValidatorComparer, provider);
- }
+ provider.RunValidatingProcessorTest(x => x.Resize(x.GetCurrentSize() / 2), comparer: ValidatorComparer);
}
-
[Theory]
[WithFileCollection(nameof(CommonTestImages), DefaultPixelType)]
public void Resize_ThrowsForWrappedMemoryImage(TestImageProvider provider)
@@ -130,32 +119,21 @@ namespace SixLabors.ImageSharp.Tests.Processing.Processors.Transforms
}
}
-
[Theory]
- [WithFile(TestImages.Png.Kaboom, DefaultPixelType)]
- public void Resize_DoesNotBleedAlphaPixels(TestImageProvider provider)
+ [WithFile(TestImages.Png.Kaboom, DefaultPixelType, false)]
+ [WithFile(TestImages.Png.Kaboom, DefaultPixelType, true)]
+ public void Resize_DoesNotBleedAlphaPixels(TestImageProvider provider, bool compand)
where TPixel : struct, IPixel
{
- using (Image image = provider.GetImage())
- {
- image.Mutate(x => x.Resize(image.Width / 2, image.Height / 2));
- image.DebugSave(provider);
- image.CompareToReferenceOutput(ValidatorComparer, provider);
- }
- }
+ string details = compand ? "Compand" : "";
- [Theory]
- [WithFile(TestImages.Png.Kaboom, DefaultPixelType)]
- public void Resize_Compand_DoesNotBleedAlphaPixels(TestImageProvider provider)
- where TPixel : struct, IPixel
- {
- using (Image image = provider.GetImage())
- {
- image.Mutate(x => x.Resize(image.Width / 2, image.Height / 2, true));
- image.DebugSave(provider);
- }
+ provider.RunValidatingProcessorTest(
+ x => x.Resize(x.GetCurrentSize() / 2, compand),
+ details,
+ appendPixelTypeToFileName: false,
+ appendSourceFileOrDescription: false);
}
-
+
[Theory]
[WithFile(TestImages.Gif.Giphy, DefaultPixelType)]
public void Resize_IsAppliedToAllFrames(TestImageProvider provider)
diff --git a/tests/Images/External b/tests/Images/External
index c0627f384..03c7fa758 160000
--- a/tests/Images/External
+++ b/tests/Images/External
@@ -1 +1 @@
-Subproject commit c0627f384c1d3d2f8d914c9578ae31354c35fd2c
+Subproject commit 03c7fa7582dea75cea0d49514ccb7e1b6dc9e780