diff --git a/src/ImageSharp/Processing/Processors/Transforms/ISwizzler.cs b/src/ImageSharp/Processing/Processors/Transforms/ISwizzler.cs
index 075ea2d52..efa3e35a4 100644
--- a/src/ImageSharp/Processing/Processors/Transforms/ISwizzler.cs
+++ b/src/ImageSharp/Processing/Processors/Transforms/ISwizzler.cs
@@ -17,7 +17,7 @@ namespace SixLabors.ImageSharp.Processing.Processors.Transforms
/// Applies the swizzle transformation to a given point.
///
/// Point to transform.
- /// The transformed point.
- void Transform(Point point, out Point newPoint);
+ /// The transformed point.
+ Point Transform(Point point);
}
}
diff --git a/src/ImageSharp/Processing/Processors/Transforms/SwizzleProcessor{TSwizzler,TPixel}.cs b/src/ImageSharp/Processing/Processors/Transforms/SwizzleProcessor{TSwizzler,TPixel}.cs
index c9b9b4570..aab17d292 100644
--- a/src/ImageSharp/Processing/Processors/Transforms/SwizzleProcessor{TSwizzler,TPixel}.cs
+++ b/src/ImageSharp/Processing/Processors/Transforms/SwizzleProcessor{TSwizzler,TPixel}.cs
@@ -29,10 +29,11 @@ namespace SixLabors.ImageSharp.Processing.Processors.Transforms
Point newPoint;
for (p.Y = 0; p.Y < source.Height; p.Y++)
{
+ Span rowSpan = source.GetPixelRowSpan(p.Y);
for (p.X = 0; p.X < source.Width; p.X++)
{
- this.swizzler.Transform(p, out newPoint);
- destination[newPoint.X, newPoint.Y] = source[p.X, p.Y];
+ newPoint = this.swizzler.Transform(p);
+ destination[newPoint.X, newPoint.Y] = rowSpan[p.X];
}
}
}