diff --git a/src/ImageSharp/Formats/Png/IPngEncoderOptions.cs b/src/ImageSharp/Formats/Png/IPngEncoderOptions.cs
index f5113d3d9..be510b156 100644
--- a/src/ImageSharp/Formats/Png/IPngEncoderOptions.cs
+++ b/src/ImageSharp/Formats/Png/IPngEncoderOptions.cs
@@ -62,5 +62,10 @@ namespace SixLabors.ImageSharp.Formats.Png
/// Gets the optimize method.
///
PngChunkFilter? ChunkFilter { get; }
+
+ ///
+ /// Gets a value indicating whether fully transparent pixels should be converted to black pixels.
+ ///
+ bool MakeTransparentBlack { get; }
}
}
diff --git a/src/ImageSharp/Formats/Png/PngChunkFilter.cs b/src/ImageSharp/Formats/Png/PngChunkFilter.cs
index 49af6ce59..f859d44da 100644
--- a/src/ImageSharp/Formats/Png/PngChunkFilter.cs
+++ b/src/ImageSharp/Formats/Png/PngChunkFilter.cs
@@ -36,11 +36,6 @@ namespace SixLabors.ImageSharp.Formats.Png
///
ExcludeTextChunks = 1 << 3,
- ///
- /// Make fully transparent pixels black.
- ///
- MakeTransparentBlack = 16,
-
///
/// All possible optimizations.
///
diff --git a/src/ImageSharp/Formats/Png/PngEncoder.cs b/src/ImageSharp/Formats/Png/PngEncoder.cs
index d2eba47de..197506ffd 100644
--- a/src/ImageSharp/Formats/Png/PngEncoder.cs
+++ b/src/ImageSharp/Formats/Png/PngEncoder.cs
@@ -67,6 +67,11 @@ namespace SixLabors.ImageSharp.Formats.Png
///
public PngChunkFilter? ChunkFilter { get; set; }
+ ///
+ /// Gets or sets a value indicating whether fully transparent pixels should be converted to black pixels.
+ ///
+ public bool MakeTransparentBlack { get; set; }
+
///
/// Encodes the image to the specified stream from the .
///
diff --git a/src/ImageSharp/Formats/Png/PngEncoderCore.cs b/src/ImageSharp/Formats/Png/PngEncoderCore.cs
index 1af5929fe..416c26b0f 100644
--- a/src/ImageSharp/Formats/Png/PngEncoderCore.cs
+++ b/src/ImageSharp/Formats/Png/PngEncoderCore.cs
@@ -7,7 +7,7 @@ using System.Buffers.Binary;
using System.IO;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
-using SixLabors.ImageSharp.Advanced;
+
using SixLabors.ImageSharp.Formats.Png.Chunks;
using SixLabors.ImageSharp.Formats.Png.Filters;
using SixLabors.ImageSharp.Formats.Png.Zlib;
@@ -145,7 +145,7 @@ namespace SixLabors.ImageSharp.Formats.Png
PngMetadata pngMetadata = metadata.GetFormatMetadata(PngFormat.Instance);
PngEncoderOptionsHelpers.AdjustOptions(this.options, pngMetadata, out this.use16Bit, out this.bytesPerPixel);
IndexedImageFrame quantized;
- if (((this.options.ChunkFilter ?? PngChunkFilter.None) & PngChunkFilter.MakeTransparentBlack) == PngChunkFilter.MakeTransparentBlack)
+ if (this.options.MakeTransparentBlack)
{
using (Image tempImage = image.Clone())
{
diff --git a/src/ImageSharp/Formats/Png/PngEncoderOptions.cs b/src/ImageSharp/Formats/Png/PngEncoderOptions.cs
index f11a23269..ba8a897ce 100644
--- a/src/ImageSharp/Formats/Png/PngEncoderOptions.cs
+++ b/src/ImageSharp/Formats/Png/PngEncoderOptions.cs
@@ -30,6 +30,7 @@ namespace SixLabors.ImageSharp.Formats.Png
this.Threshold = source.Threshold;
this.InterlaceMethod = source.InterlaceMethod;
this.ChunkFilter = source.ChunkFilter;
+ this.MakeTransparentBlack = source.MakeTransparentBlack;
}
///
@@ -84,5 +85,8 @@ namespace SixLabors.ImageSharp.Formats.Png
/// Gets or sets a the optimize method.
///
public PngChunkFilter? ChunkFilter { get; set; }
+
+ ///
+ public bool MakeTransparentBlack { get; set; }
}
}