diff --git a/src/ImageSharp/Processing/Processors/Transforms/ResizeKernel.cs b/src/ImageSharp/Processing/Processors/Transforms/ResizeKernel.cs
index cc3c204534..be4b7a741d 100644
--- a/src/ImageSharp/Processing/Processors/Transforms/ResizeKernel.cs
+++ b/src/ImageSharp/Processing/Processors/Transforms/ResizeKernel.cs
@@ -73,11 +73,11 @@ namespace SixLabors.ImageSharp.Processing.Processors.Transforms
/// The source row position.
/// The weighted sum
[MethodImpl(InliningOptions.ShortMethod)]
- public Vector4 Convolve(Span rowSpan, int sourceX)
+ public Vector4 Convolve(Span rowSpan)
{
ref float horizontalValues = ref this.GetStartReference();
int left = this.Left;
- ref Vector4 vecPtr = ref Unsafe.Add(ref MemoryMarshal.GetReference(rowSpan), left + sourceX);
+ ref Vector4 vecPtr = ref Unsafe.Add(ref MemoryMarshal.GetReference(rowSpan), left);
// Destination color components
Vector4 result = Vector4.Zero;
diff --git a/src/ImageSharp/Processing/Processors/Transforms/ResizeProcessor.cs b/src/ImageSharp/Processing/Processors/Transforms/ResizeProcessor.cs
index 4d4ed06ce1..d0d225d9bf 100644
--- a/src/ImageSharp/Processing/Processors/Transforms/ResizeProcessor.cs
+++ b/src/ImageSharp/Processing/Processors/Transforms/ResizeProcessor.cs
@@ -254,8 +254,8 @@ namespace SixLabors.ImageSharp.Processing.Processors.Transforms
{
for (int y = rows.Min; y < rows.Max; y++)
{
- Span sourceRow = source.GetPixelRowSpan(y);
- Span tempRowSpan = tempRowBuffer.Span;
+ Span sourceRow = source.GetPixelRowSpan(y).Slice(sourceX);
+ Span tempRowSpan = tempRowBuffer.Span.Slice(sourceX);
PixelOperations.Instance.ToVector4(configuration, sourceRow, tempRowSpan);
Vector4Utils.Premultiply(tempRowSpan);
@@ -271,7 +271,7 @@ namespace SixLabors.ImageSharp.Processing.Processors.Transforms
{
ResizeKernel window = this.horizontalKernelMap.Kernels[x - startX];
Unsafe.Add(ref firstPassBaseRef, x * sourceHeight) =
- window.Convolve(tempRowSpan, sourceX);
+ window.Convolve(tempRowSpan);
}
}
});
@@ -295,10 +295,10 @@ namespace SixLabors.ImageSharp.Processing.Processors.Transforms
for (int x = 0; x < width; x++)
{
- Span firstPassColumn = firstPassPixelsTransposed.GetRowSpan(x);
+ Span firstPassColumn = firstPassPixelsTransposed.GetRowSpan(x).Slice(sourceY);
// Destination color components
- Unsafe.Add(ref tempRowBase, x) = window.Convolve(firstPassColumn, sourceY);
+ Unsafe.Add(ref tempRowBase, x) = window.Convolve(firstPassColumn);
}
Vector4Utils.UnPremultiply(tempRowSpan);