diff --git a/src/ImageSharp/Formats/Png/PngChunkType.cs b/src/ImageSharp/Formats/Png/PngChunkType.cs
index e41b49066..67e5ccf55 100644
--- a/src/ImageSharp/Formats/Png/PngChunkType.cs
+++ b/src/ImageSharp/Formats/Png/PngChunkType.cs
@@ -73,6 +73,58 @@ namespace SixLabors.ImageSharp.Formats.Png
/// either alpha values associated with palette entries (for indexed-color images)
/// or a single transparent color (for grayscale and true color images).
///
- Transparency = 0x74524E53U
+ Transparency = 0x74524E53U,
+
+ ///
+ /// The tIME chunk gives the time of the last image modification (not the time of initial image creation).
+ ///
+ Time = 0x74494d45,
+
+ ///
+ /// The bKGD chunk specifies a default background colour to present the image against.
+ /// If there is any other preferred background, either user-specified or part of a larger page (as in a browser),
+ /// the bKGD chunk should be ignored.
+ ///
+ Background = 0x624b4744,
+
+ ///
+ /// The iCCP chunk contains a embedded color profile. If the iCCP chunk is present,
+ /// the image samples conform to the colour space represented by the embedded ICC profile as defined by the International Color Consortium.
+ ///
+ EmbeddedColorProfile = 0x69434350,
+
+ ///
+ /// The sBIT chunk defines the original number of significant bits (which can be less than or equal to the sample depth).
+ /// This allows PNG decoders to recover the original data losslessly even if the data had a sample depth not directly supported by PNG.
+ ///
+ SignificantBits = 0x73424954,
+
+ ///
+ /// If the sRGB chunk is present, the image samples conform to the sRGB colour space [IEC 61966-2-1] and should be displayed
+ /// using the specified rendering intent defined by the International Color Consortium.
+ ///
+ StandardRgbColourSpace = 0x73524742,
+
+ ///
+ /// The hIST chunk gives the approximate usage frequency of each colour in the palette.
+ ///
+ Histogram = 0x68495354,
+
+ ///
+ /// The sPLT chunk contains the suggested palette.
+ ///
+ SuggestedPalette = 0x73504c54,
+
+ ///
+ /// The cHRM chunk may be used to specify the 1931 CIE x,y chromaticities of the red,
+ /// green, and blue display primaries used in the image, and the referenced white point.
+ ///
+ Chroma = 0x6348524d,
+
+ ///
+ /// Malformed chunk named CgBI produced by apple, which is not conform to the specification.
+ /// Related issue is here https://github.com/SixLabors/ImageSharp/issues/410
+ ///
+ MalformedApple = 0x43674249
}
}
diff --git a/tests/ImageSharp.Tests/Formats/Png/PngChunkTypeTests.cs b/tests/ImageSharp.Tests/Formats/Png/PngChunkTypeTests.cs
index 2e8c0de27..f3984ac82 100644
--- a/tests/ImageSharp.Tests/Formats/Png/PngChunkTypeTests.cs
+++ b/tests/ImageSharp.Tests/Formats/Png/PngChunkTypeTests.cs
@@ -13,15 +13,26 @@ namespace SixLabors.ImageSharp.Tests.Formats.Png
[Fact]
public void ChunkTypeIdsAreCorrect()
{
- Assert.Equal(PngChunkType.Header, GetType("IHDR"));
- Assert.Equal(PngChunkType.Palette, GetType("PLTE"));
- Assert.Equal(PngChunkType.Data, GetType("IDAT"));
- Assert.Equal(PngChunkType.End, GetType("IEND"));
+ Assert.Equal(PngChunkType.Header, GetType("IHDR"));
+ Assert.Equal(PngChunkType.Palette, GetType("PLTE"));
+ Assert.Equal(PngChunkType.Data, GetType("IDAT"));
+ Assert.Equal(PngChunkType.End, GetType("IEND"));
Assert.Equal(PngChunkType.Transparency, GetType("tRNS"));
- Assert.Equal(PngChunkType.Text, GetType("tEXt"));
- Assert.Equal(PngChunkType.Gamma, GetType("gAMA"));
- Assert.Equal(PngChunkType.Physical, GetType("pHYs"));
- Assert.Equal(PngChunkType.Exif, GetType("eXIf"));
+ Assert.Equal(PngChunkType.Text, GetType("tEXt"));
+ Assert.Equal(PngChunkType.InternationalText, GetType("iTXt"));
+ Assert.Equal(PngChunkType.CompressedText, GetType("zTXt"));
+ Assert.Equal(PngChunkType.Chroma, GetType("cHRM"));
+ Assert.Equal(PngChunkType.Gamma, GetType("gAMA"));
+ Assert.Equal(PngChunkType.Physical, GetType("pHYs"));
+ Assert.Equal(PngChunkType.Exif, GetType("eXIf"));
+ Assert.Equal(PngChunkType.Time, GetType("tIME"));
+ Assert.Equal(PngChunkType.Background, GetType("bKGD"));
+ Assert.Equal(PngChunkType.EmbeddedColorProfile, GetType("iCCP"));
+ Assert.Equal(PngChunkType.StandardRgbColourSpace, GetType("sRGB"));
+ Assert.Equal(PngChunkType.SignificantBits, GetType("sBIT"));
+ Assert.Equal(PngChunkType.Histogram, GetType("hIST"));
+ Assert.Equal(PngChunkType.SuggestedPalette, GetType("sPLT"));
+ Assert.Equal(PngChunkType.MalformedApple, GetType("CgBI"));
}
private static PngChunkType GetType(string text)