From f86cc582ab769c82cfab4e455db0cb53a8ce7e05 Mon Sep 17 00:00:00 2001 From: BobLd <38405645+BobLd@users.noreply.github.com> Date: Sun, 5 Jan 2025 16:38:09 +0000 Subject: [PATCH] Execute RemoveStridePadding in place when possible --- src/UglyToad.PdfPig/Images/ColorSpaceDetailsByteConverter.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/UglyToad.PdfPig/Images/ColorSpaceDetailsByteConverter.cs b/src/UglyToad.PdfPig/Images/ColorSpaceDetailsByteConverter.cs index 277bccb3..93645845 100644 --- a/src/UglyToad.PdfPig/Images/ColorSpaceDetailsByteConverter.cs +++ b/src/UglyToad.PdfPig/Images/ColorSpaceDetailsByteConverter.cs @@ -87,7 +87,10 @@ private static Span RemoveStridePadding(Span input, int strideWidth, int imageWidth, int imageHeight, int multiplier) { - Span result = new byte[imageWidth * imageHeight * multiplier]; + int size = imageWidth * imageHeight * multiplier; + Span result = size < input.Length ? input.Slice(0, size) : new byte[size]; + // See PDFBOX-492-4.jar-8.pdf, page 2 for size > input.Length + for (int y = 0; y < imageHeight; y++) { int sourceIndex = y * strideWidth;