diff --git a/src/ImageSharp/Formats/Png/PngDecoderCore.cs b/src/ImageSharp/Formats/Png/PngDecoderCore.cs index 8e6789132..29b28c918 100644 --- a/src/ImageSharp/Formats/Png/PngDecoderCore.cs +++ b/src/ImageSharp/Formats/Png/PngDecoderCore.cs @@ -187,7 +187,6 @@ namespace SixLabors.ImageSharp.Formats.Png chunk.Data.GetSpan().CopyTo(alpha); this.paletteAlpha = alpha; this.AssignTransparentMarkers(alpha, pngMetadata); - pngMetadata.HasTransparency = true; break; case PngChunkType.Text: this.ReadTextChunk(metadata, pngMetadata, chunk.Data.GetSpan()); @@ -295,7 +294,6 @@ namespace SixLabors.ImageSharp.Formats.Png chunk.Data.GetSpan().CopyTo(alpha); this.paletteAlpha = alpha; this.AssignTransparentMarkers(alpha, pngMetadata); - pngMetadata.HasTransparency = true; if (this.colorMetadataOnly) { @@ -974,6 +972,10 @@ namespace SixLabors.ImageSharp.Formats.Png pngMetadata.HasTransparency = true; } } + else if (this.pngColorType == PngColorType.Palette && alpha.Length > 0) + { + pngMetadata.HasTransparency = true; + } } ///