From a7b878d8d239b2658d0150a0efd0bb5404fc279f Mon Sep 17 00:00:00 2001 From: James Jackson-South Date: Wed, 5 Apr 2017 23:55:29 +1000 Subject: [PATCH] Fix indexed png alpha selection. Fix #163 #165 --- src/ImageSharp/Formats/Png/PngEncoderCore.cs | 9 +++++++-- src/ImageSharp/Quantizers/QuantizedImage.cs | 1 - 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/ImageSharp/Formats/Png/PngEncoderCore.cs b/src/ImageSharp/Formats/Png/PngEncoderCore.cs index 498ae578c..552673179 100644 --- a/src/ImageSharp/Formats/Png/PngEncoderCore.cs +++ b/src/ImageSharp/Formats/Png/PngEncoderCore.cs @@ -516,9 +516,14 @@ namespace ImageSharp.Formats colorTable[offset + 1] = bytes[1]; colorTable[offset + 2] = bytes[2]; - if (alpha <= this.options.Threshold) + if (alpha < 255 && alpha <= this.options.Threshold) { - transparentPixels.Add((byte)offset); + // Ensure the index is actually being used in our array. + // I'd like to find a faster way of doing this. + if (quantized.Pixels.Contains((byte)i)) + { + transparentPixels.Add((byte)i); + } } } diff --git a/src/ImageSharp/Quantizers/QuantizedImage.cs b/src/ImageSharp/Quantizers/QuantizedImage.cs index 528da7717..471abbae7 100644 --- a/src/ImageSharp/Quantizers/QuantizedImage.cs +++ b/src/ImageSharp/Quantizers/QuantizedImage.cs @@ -6,7 +6,6 @@ namespace ImageSharp.Quantizers { using System; - using System.Threading.Tasks; /// /// Represents a quantized image where the pixels indexed by a color palette.