From d60048ead223504715c0a17f8120a7f477f26d3c Mon Sep 17 00:00:00 2001 From: James Jackson-South Date: Wed, 26 Sep 2018 12:12:38 +0100 Subject: [PATCH] Fix 8 bit downscaling --- src/ImageSharp/Formats/Png/PngEncoderCore.cs | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/ImageSharp/Formats/Png/PngEncoderCore.cs b/src/ImageSharp/Formats/Png/PngEncoderCore.cs index 5948f350e0..bc7f1906fe 100644 --- a/src/ImageSharp/Formats/Png/PngEncoderCore.cs +++ b/src/ImageSharp/Formats/Png/PngEncoderCore.cs @@ -852,17 +852,18 @@ namespace SixLabors.ImageSharp.Formats.Png byte shift0 = (byte)(8 - bits); int shift = 8 - bits; int v = 0; + int resultOffset = 0; - for (int i = 0, j = 0; j < source.Length; j++) + for (int i = 0; i < source.Length; i++) { - int value = source[j] & mask; + int value = source[i] & mask; v |= value << shift; if (shift == 0) { shift = shift0; - result[i] = (byte)v; - i++; + result[resultOffset] = (byte)v; + resultOffset++; v = 0; } else @@ -873,7 +874,7 @@ namespace SixLabors.ImageSharp.Formats.Png if (shift != shift0) { - result[0] = (byte)v; + result[resultOffset] = (byte)v; } }