diff --git a/src/ImageSharp/Formats/Png/PngConstants.cs b/src/ImageSharp/Formats/Png/PngConstants.cs
index ff25e26b7a..48c866f671 100644
--- a/src/ImageSharp/Formats/Png/PngConstants.cs
+++ b/src/ImageSharp/Formats/Png/PngConstants.cs
@@ -41,5 +41,17 @@ namespace SixLabors.ImageSharp.Formats.Png
/// The header bytes as a big endian coded ulong.
///
public const ulong HeaderValue = 0x89504E470D0A1A0AUL;
+
+ ///
+ /// The dictionary of available color types.
+ ///
+ public static readonly Dictionary ColorTypes = new Dictionary()
+ {
+ [PngColorType.Grayscale] = new byte[] { 1, 2, 4, 8, 16 },
+ [PngColorType.Rgb] = new byte[] { 8, 16 },
+ [PngColorType.Palette] = new byte[] { 1, 2, 4, 8 },
+ [PngColorType.GrayscaleWithAlpha] = new byte[] { 8, 16 },
+ [PngColorType.RgbWithAlpha] = new byte[] { 8, 16 }
+ };
}
}
\ No newline at end of file
diff --git a/src/ImageSharp/Formats/Png/PngDecoderCore.cs b/src/ImageSharp/Formats/Png/PngDecoderCore.cs
index fa509336e7..a24b69160a 100644
--- a/src/ImageSharp/Formats/Png/PngDecoderCore.cs
+++ b/src/ImageSharp/Formats/Png/PngDecoderCore.cs
@@ -25,18 +25,6 @@ namespace SixLabors.ImageSharp.Formats.Png
///
internal sealed class PngDecoderCore
{
- ///
- /// The dictionary of available color types.
- ///
- private static readonly Dictionary ColorTypes = new Dictionary()
- {
- [PngColorType.Grayscale] = new byte[] { 1, 2, 4, 8, 16 },
- [PngColorType.Rgb] = new byte[] { 8, 16 },
- [PngColorType.Palette] = new byte[] { 1, 2, 4, 8 },
- [PngColorType.GrayscaleWithAlpha] = new byte[] { 8, 16 },
- [PngColorType.RgbWithAlpha] = new byte[] { 8, 16 }
- };
-
///
/// Reusable buffer.
///
@@ -858,6 +846,7 @@ namespace SixLabors.ImageSharp.Formats.Png
ushort rc = BinaryPrimitives.ReadUInt16LittleEndian(alpha.Slice(0, 2));
ushort gc = BinaryPrimitives.ReadUInt16LittleEndian(alpha.Slice(2, 2));
ushort bc = BinaryPrimitives.ReadUInt16LittleEndian(alpha.Slice(4, 2));
+
this.rgb48Trans = new Rgb48(rc, gc, bc);
this.hasTrans = true;
return;
@@ -909,12 +898,12 @@ namespace SixLabors.ImageSharp.Formats.Png
///
private void ValidateHeader()
{
- if (!ColorTypes.ContainsKey(this.header.ColorType))
+ if (!PngConstants.ColorTypes.ContainsKey(this.header.ColorType))
{
throw new NotSupportedException("Color type is not supported or not valid.");
}
- if (!ColorTypes[this.header.ColorType].Contains(this.header.BitDepth))
+ if (!PngConstants.ColorTypes[this.header.ColorType].Contains(this.header.BitDepth))
{
throw new NotSupportedException("Bit depth is not supported or not valid.");
}