From e69658ea7340440a97c8fdde84a8079928b5c11e Mon Sep 17 00:00:00 2001 From: James Jackson-South Date: Mon, 29 Aug 2022 10:45:20 +1000 Subject: [PATCH] Only assign when the relevant detail is there. --- src/ImageSharp/Formats/Png/PngDecoderCore.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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; + } } ///