From 5108752e5cad94ad0883c2eb2bc16e79c2204394 Mon Sep 17 00:00:00 2001 From: Anton Firszov Date: Mon, 15 Apr 2019 01:46:21 +0200 Subject: [PATCH] minor optimization --- .../Processors/Transforms/Resize/ResizeProcessor.cs | 4 +++- .../Processing/Processors/Transforms/Resize/ResizeWindow.cs | 6 ++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/ImageSharp/Processing/Processors/Transforms/Resize/ResizeProcessor.cs b/src/ImageSharp/Processing/Processors/Transforms/Resize/ResizeProcessor.cs index 9508d7c009..d61cc5e89c 100644 --- a/src/ImageSharp/Processing/Processors/Transforms/Resize/ResizeProcessor.cs +++ b/src/ImageSharp/Processing/Processors/Transforms/Resize/ResizeProcessor.cs @@ -269,9 +269,11 @@ namespace SixLabors.ImageSharp.Processing.Processors.Transforms ref Vector4 tempRowBase = ref MemoryMarshal.GetReference(tempColSpan); + int top = kernel.StartIndex - resizeWindow.Top; + for (int x = 0; x < width; x++) { - Span firstPassColumn = resizeWindow.GetColumnSpan(x, kernel.StartIndex); + Span firstPassColumn = resizeWindow.GetColumnSpan(x).Slice(top); // Destination color components Unsafe.Add(ref tempRowBase, x) = kernel.ConvolveCore(firstPassColumn); diff --git a/src/ImageSharp/Processing/Processors/Transforms/Resize/ResizeWindow.cs b/src/ImageSharp/Processing/Processors/Transforms/Resize/ResizeWindow.cs index 8221a9cc43..afa9dac2d2 100644 --- a/src/ImageSharp/Processing/Processors/Transforms/Resize/ResizeWindow.cs +++ b/src/ImageSharp/Processing/Processors/Transforms/Resize/ResizeWindow.cs @@ -85,6 +85,12 @@ namespace SixLabors.ImageSharp.Processing.Processors.Transforms return this.buffer.GetRowSpan(x).Slice(startY - this.Top); } + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public Span GetColumnSpan(int x) + { + return this.buffer.GetRowSpan(x); + } + public void Initialize() { this.Initialize(0, this.windowHeight);