diff --git a/src/ImageSharp/Formats/Png/PngDecoderCore.cs b/src/ImageSharp/Formats/Png/PngDecoderCore.cs
index 87c22a2ad..c446184d8 100644
--- a/src/ImageSharp/Formats/Png/PngDecoderCore.cs
+++ b/src/ImageSharp/Formats/Png/PngDecoderCore.cs
@@ -656,8 +656,8 @@ namespace SixLabors.ImageSharp.Formats.Png
scanlineSpan,
rowSpan,
pngMetaData.HasTrans,
- pngMetaData.Luminance16Trans.GetValueOrDefault(),
- pngMetaData.LuminanceTrans.GetValueOrDefault());
+ pngMetaData.TransparentGray16.GetValueOrDefault(),
+ pngMetaData.TransparentGray8.GetValueOrDefault());
break;
@@ -690,8 +690,8 @@ namespace SixLabors.ImageSharp.Formats.Png
this.bytesPerPixel,
this.bytesPerSample,
pngMetaData.HasTrans,
- pngMetaData.Rgb48Trans.GetValueOrDefault(),
- pngMetaData.Rgb24Trans.GetValueOrDefault());
+ pngMetaData.TransparentRgb48.GetValueOrDefault(),
+ pngMetaData.TransparentRgb24.GetValueOrDefault());
break;
@@ -740,8 +740,8 @@ namespace SixLabors.ImageSharp.Formats.Png
pixelOffset,
increment,
pngMetaData.HasTrans,
- pngMetaData.Luminance16Trans.GetValueOrDefault(),
- pngMetaData.LuminanceTrans.GetValueOrDefault());
+ pngMetaData.TransparentGray16.GetValueOrDefault(),
+ pngMetaData.TransparentGray8.GetValueOrDefault());
break;
@@ -779,8 +779,8 @@ namespace SixLabors.ImageSharp.Formats.Png
this.bytesPerPixel,
this.bytesPerSample,
pngMetaData.HasTrans,
- pngMetaData.Rgb48Trans.GetValueOrDefault(),
- pngMetaData.Rgb24Trans.GetValueOrDefault());
+ pngMetaData.TransparentRgb48.GetValueOrDefault(),
+ pngMetaData.TransparentRgb24.GetValueOrDefault());
break;
@@ -817,7 +817,7 @@ namespace SixLabors.ImageSharp.Formats.Png
ushort gc = BinaryPrimitives.ReadUInt16LittleEndian(alpha.Slice(2, 2));
ushort bc = BinaryPrimitives.ReadUInt16LittleEndian(alpha.Slice(4, 2));
- pngMetaData.Rgb48Trans = new Rgb48(rc, gc, bc);
+ pngMetaData.TransparentRgb48 = new Rgb48(rc, gc, bc);
pngMetaData.HasTrans = true;
return;
}
@@ -825,7 +825,7 @@ namespace SixLabors.ImageSharp.Formats.Png
byte r = ReadByteLittleEndian(alpha, 0);
byte g = ReadByteLittleEndian(alpha, 2);
byte b = ReadByteLittleEndian(alpha, 4);
- pngMetaData.Rgb24Trans = new Rgb24(r, g, b);
+ pngMetaData.TransparentRgb24 = new Rgb24(r, g, b);
pngMetaData.HasTrans = true;
}
}
@@ -835,11 +835,11 @@ namespace SixLabors.ImageSharp.Formats.Png
{
if (this.header.BitDepth == 16)
{
- pngMetaData.Luminance16Trans = BinaryPrimitives.ReadUInt16LittleEndian(alpha.Slice(0, 2));
+ pngMetaData.TransparentGray16 = new Gray16(BinaryPrimitives.ReadUInt16LittleEndian(alpha.Slice(0, 2)));
}
else
{
- pngMetaData.LuminanceTrans = ReadByteLittleEndian(alpha, 0);
+ pngMetaData.TransparentGray8 = new Gray8(ReadByteLittleEndian(alpha, 0));
}
pngMetaData.HasTrans = true;
diff --git a/src/ImageSharp/Formats/Png/PngEncoderCore.cs b/src/ImageSharp/Formats/Png/PngEncoderCore.cs
index 1179a6db3..e953bc1f0 100644
--- a/src/ImageSharp/Formats/Png/PngEncoderCore.cs
+++ b/src/ImageSharp/Formats/Png/PngEncoderCore.cs
@@ -314,37 +314,37 @@ namespace SixLabors.ImageSharp.Formats.Png
{
if (pngMetaData.ColorType == PngColorType.Rgb)
{
- if (pngMetaData.Rgb48Trans != null)
+ if (pngMetaData.TransparentRgb48 != null)
{
- var r = BitConverter.GetBytes(pngMetaData.Rgb48Trans.Value.R);
- var g = BitConverter.GetBytes(pngMetaData.Rgb48Trans.Value.R);
- var b = BitConverter.GetBytes(pngMetaData.Rgb48Trans.Value.B);
+ var r = BitConverter.GetBytes(pngMetaData.TransparentRgb48.Value.R);
+ var g = BitConverter.GetBytes(pngMetaData.TransparentRgb48.Value.R);
+ var b = BitConverter.GetBytes(pngMetaData.TransparentRgb48.Value.B);
var alphaArray = r.Concat(g).Concat(b).ToArray();
this.WriteChunk(stream, PngChunkType.PaletteAlpha, alphaArray, 0, alphaArray.Length);
}
- else if (pngMetaData.Rgb24Trans != null)
+ else if (pngMetaData.TransparentRgb24 != null)
{
var alphaArray = new byte[6];
- alphaArray[1] = pngMetaData.Rgb24Trans.Value.R;
- alphaArray[3] = pngMetaData.Rgb24Trans.Value.G;
- alphaArray[5] = pngMetaData.Rgb24Trans.Value.B;
+ alphaArray[1] = pngMetaData.TransparentRgb24.Value.R;
+ alphaArray[3] = pngMetaData.TransparentRgb24.Value.G;
+ alphaArray[5] = pngMetaData.TransparentRgb24.Value.B;
this.WriteChunk(stream, PngChunkType.PaletteAlpha, alphaArray, 0, alphaArray.Length);
}
}
else if (pngMetaData.ColorType == PngColorType.Grayscale)
{
- if (pngMetaData.Luminance16Trans != null)
+ if (pngMetaData.TransparentGray16 != null)
{
- var alphaArray = BitConverter.GetBytes(pngMetaData.Luminance16Trans.Value);
+ var alphaArray = BitConverter.GetBytes(pngMetaData.TransparentGray16.Value.PackedValue);
this.WriteChunk(stream, PngChunkType.PaletteAlpha, alphaArray, 0, alphaArray.Length);
}
- else if (pngMetaData.LuminanceTrans != null)
+ else if (pngMetaData.TransparentGray8 != null)
{
var alphaArray = new byte[2];
- alphaArray[1] = pngMetaData.LuminanceTrans.Value;
+ alphaArray[1] = pngMetaData.TransparentGray8.Value.PackedValue;
this.WriteChunk(stream, PngChunkType.PaletteAlpha, alphaArray, 0, alphaArray.Length);
}
diff --git a/src/ImageSharp/Formats/Png/PngMetaData.cs b/src/ImageSharp/Formats/Png/PngMetaData.cs
index 765222795..6a293f770 100644
--- a/src/ImageSharp/Formats/Png/PngMetaData.cs
+++ b/src/ImageSharp/Formats/Png/PngMetaData.cs
@@ -47,22 +47,22 @@ namespace SixLabors.ImageSharp.Formats.Png
///
/// Gets or sets the Rgb 24 transparent color. This represents any color in an 8 bit Rgb24 encoded png that should be transparent
///
- public Rgb24? Rgb24Trans { get; set; }
+ public Rgb24? TransparentRgb24 { get; set; }
///
/// Gets or sets the Rgb 48 transparent color. This represents any color in a 16 bit Rgb24 encoded png that should be transparent
///
- public Rgb48? Rgb48Trans { get; set; }
+ public Rgb48? TransparentRgb48 { get; set; }
///
/// Gets or sets the 8 bit grayscale transparent color. This represents any color in an 8 bit grayscale encoded png that should be transparent
///
- public byte? LuminanceTrans { get; set; }
+ public Gray8? TransparentGray8 { get; set; }
///
/// Gets or sets the 16 bit grayscale transparent color. This represents any color in a 16 bit grayscale encoded png that should be transparent
///
- public ushort? Luminance16Trans { get; set; }
+ public Gray16? TransparentGray16 { get; set; }
///
/// Gets or sets a value indicating whether the image has transparency chunk and markers were decoded
diff --git a/src/ImageSharp/Formats/Png/PngScanlineProcessor.cs b/src/ImageSharp/Formats/Png/PngScanlineProcessor.cs
index 3fe590ee2..528c012c5 100644
--- a/src/ImageSharp/Formats/Png/PngScanlineProcessor.cs
+++ b/src/ImageSharp/Formats/Png/PngScanlineProcessor.cs
@@ -20,8 +20,8 @@ namespace SixLabors.ImageSharp.Formats.Png
ReadOnlySpan scanlineSpan,
Span rowSpan,
bool hasTrans,
- ushort luminance16Trans,
- byte luminanceTrans)
+ Gray16 luminance16Trans,
+ Gray8 luminanceTrans)
where TPixel : struct, IPixel
{
TPixel pixel = default;
@@ -62,7 +62,7 @@ namespace SixLabors.ImageSharp.Formats.Png
rgba64.R = luminance;
rgba64.G = luminance;
rgba64.B = luminance;
- rgba64.A = luminance.Equals(luminance16Trans) ? ushort.MinValue : ushort.MaxValue;
+ rgba64.A = luminance.Equals(luminance16Trans.PackedValue) ? ushort.MinValue : ushort.MaxValue;
pixel.FromRgba64(rgba64);
Unsafe.Add(ref rowSpanRef, x) = pixel;
@@ -70,7 +70,7 @@ namespace SixLabors.ImageSharp.Formats.Png
}
else
{
- byte scaledLuminanceTrans = (byte)(luminanceTrans * scaleFactor);
+ byte scaledLuminanceTrans = (byte)(luminanceTrans.PackedValue * scaleFactor);
Rgba32 rgba32 = default;
for (int x = 0; x < header.Width; x++)
{
@@ -93,8 +93,8 @@ namespace SixLabors.ImageSharp.Formats.Png
int pixelOffset,
int increment,
bool hasTrans,
- ushort luminance16Trans,
- byte luminanceTrans)
+ Gray16 luminance16Trans,
+ Gray8 luminanceTrans)
where TPixel : struct, IPixel
{
TPixel pixel = default;
@@ -135,7 +135,7 @@ namespace SixLabors.ImageSharp.Formats.Png
rgba64.R = luminance;
rgba64.G = luminance;
rgba64.B = luminance;
- rgba64.A = luminance.Equals(luminance16Trans) ? ushort.MinValue : ushort.MaxValue;
+ rgba64.A = luminance.Equals(luminance16Trans.PackedValue) ? ushort.MinValue : ushort.MaxValue;
pixel.FromRgba64(rgba64);
Unsafe.Add(ref rowSpanRef, x) = pixel;
@@ -143,7 +143,7 @@ namespace SixLabors.ImageSharp.Formats.Png
}
else
{
- byte scaledLuminanceTrans = (byte)(luminanceTrans * scaleFactor);
+ byte scaledLuminanceTrans = (byte)(luminanceTrans.PackedValue * scaleFactor);
Rgba32 rgba32 = default;
for (int x = pixelOffset; x < header.Width; x += increment)
{