From 0e9317153324cd8aecd8d6887d3eb136bc451413 Mon Sep 17 00:00:00 2001 From: Brian Popow Date: Wed, 24 Aug 2022 22:40:56 +0200 Subject: [PATCH] Add tests for #2209 --- .../Formats/Png/PngDecoderTests.cs | 24 +++++++++++++++++++ tests/ImageSharp.Tests/TestImages.cs | 3 +++ tests/Images/Input/Png/issues/Issue_2209.png | 3 +++ 3 files changed, 30 insertions(+) create mode 100644 tests/Images/Input/Png/issues/Issue_2209.png diff --git a/tests/ImageSharp.Tests/Formats/Png/PngDecoderTests.cs b/tests/ImageSharp.Tests/Formats/Png/PngDecoderTests.cs index 29e0af9c6..22454d257 100644 --- a/tests/ImageSharp.Tests/Formats/Png/PngDecoderTests.cs +++ b/tests/ImageSharp.Tests/Formats/Png/PngDecoderTests.cs @@ -470,6 +470,30 @@ namespace SixLabors.ImageSharp.Tests.Formats.Png Assert.Null(ex); } + // https://github.com/SixLabors/ImageSharp/issues/2209 + [Theory] + [WithFile(TestImages.Png.Issue2209IndexedWithTransparency, PixelTypes.Rgba32)] + public void Issue2209_Decode_HasTransparencyIsTrue(TestImageProvider provider) + where TPixel : unmanaged, IPixel + { + using Image image = provider.GetImage(PngDecoder); + image.DebugSave(provider); + PngMetadata metadata = image.Metadata.GetPngMetadata(); + Assert.True(metadata.HasTransparency); + } + + // https://github.com/SixLabors/ImageSharp/issues/2209 + [Theory] + [InlineData(TestImages.Png.Issue2209IndexedWithTransparency)] + public void Issue2209_Identify_HasTransparencyIsTrue(string imagePath) + { + var testFile = TestFile.Create(imagePath); + using var stream = new MemoryStream(testFile.Bytes, false); + IImageInfo imageInfo = Image.Identify(stream); + PngMetadata metadata = imageInfo.Metadata.GetPngMetadata(); + Assert.True(metadata.HasTransparency); + } + // https://github.com/SixLabors/ImageSharp/issues/410 [Theory] [WithFile(TestImages.Png.Bad.Issue410_MalformedApplePng, PixelTypes.Rgba32)] diff --git a/tests/ImageSharp.Tests/TestImages.cs b/tests/ImageSharp.Tests/TestImages.cs index 306a28dae..ddaf672b4 100644 --- a/tests/ImageSharp.Tests/TestImages.cs +++ b/tests/ImageSharp.Tests/TestImages.cs @@ -125,6 +125,9 @@ namespace SixLabors.ImageSharp.Tests // Discussion 1875: https://github.com/SixLabors/ImageSharp/discussions/1875 public const string Issue1875 = "Png/raw-profile-type-exif.png"; + // Issue 2209: https://github.com/SixLabors/ImageSharp/issues/2209 + public const string Issue2209IndexedWithTransparency = "Png/issues/Issue_2209.png"; + public static class Bad { public const string MissingDataChunk = "Png/xdtn0g01.png"; diff --git a/tests/Images/Input/Png/issues/Issue_2209.png b/tests/Images/Input/Png/issues/Issue_2209.png new file mode 100644 index 000000000..6cc26bce5 --- /dev/null +++ b/tests/Images/Input/Png/issues/Issue_2209.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:58eae3863a2107bf3359a87492bc95524b54dd091683e333ac73d76f229a1f71 +size 621275