diff --git a/src/ImageSharp/Formats/Png/IPngEncoderOptions.cs b/src/ImageSharp/Formats/Png/IPngEncoderOptions.cs
index 0008080d3f..3f5b33c0c8 100644
--- a/src/ImageSharp/Formats/Png/IPngEncoderOptions.cs
+++ b/src/ImageSharp/Formats/Png/IPngEncoderOptions.cs
@@ -40,11 +40,6 @@ namespace ImageSharp.Formats
///
IQuantizer Quantizer { get; }
- ///
- /// Gets the transparency threshold.
- ///
- byte Threshold { get; }
-
///
/// Gets a value indicating whether this instance should write
/// gamma information to the stream.
diff --git a/src/ImageSharp/Formats/Png/PngEncoderOptions.cs b/src/ImageSharp/Formats/Png/PngEncoderOptions.cs
index 2891f1974e..3c5bb1f622 100644
--- a/src/ImageSharp/Formats/Png/PngEncoderOptions.cs
+++ b/src/ImageSharp/Formats/Png/PngEncoderOptions.cs
@@ -57,11 +57,6 @@ namespace ImageSharp.Formats
///
public IQuantizer Quantizer { get; set; }
- ///
- /// Gets or sets the transparency threshold.
- ///
- public byte Threshold { get; set; } = 0;
-
///
/// Gets or sets a value indicating whether this instance should write
/// gamma information to the stream. The default value is false.
diff --git a/tests/ImageSharp.Tests/Formats/Png/PngSmokeTests.cs b/tests/ImageSharp.Tests/Formats/Png/PngSmokeTests.cs
index 882f903d68..4bdfd288c5 100644
--- a/tests/ImageSharp.Tests/Formats/Png/PngSmokeTests.cs
+++ b/tests/ImageSharp.Tests/Formats/Png/PngSmokeTests.cs
@@ -58,6 +58,46 @@ namespace ImageSharp.Tests.Formats.Png
}
}
+ [Theory]
+ [WithTestPatternImages(100, 100, PixelTypes.Color)]
+ public void CanSaveIndexedPngTwice(TestImageProvider provider)
+ where TColor : struct, IPixel
+ {
+ // does saving a file then repoening mean both files are identical???
+ using (Image source = provider.GetImage())
+ using (MemoryStream ms = new MemoryStream())
+ {
+ // image.Save(provider.Utility.GetTestOutputFileName("bmp"));
+ source.MetaData.Quality = 256;
+ source.Save(ms, new PngEncoder());
+ ms.Position = 0;
+ using (Image img1 = Image.Load(ms, new PngDecoder()))
+ {
+ using (MemoryStream ms2 = new MemoryStream())
+ {
+ img1.Save(ms2, new PngEncoder());
+ ms2.Position = 0;
+ using (Image img2 = Image.Load(ms2, new PngDecoder()))
+ {
+ using (PixelAccessor pixels1 = img1.Lock())
+ using (PixelAccessor pixels2 = img2.Lock())
+ {
+ for (int y = 0; y < img1.Height; y++)
+ {
+ for (int x = 0; x < img1.Width; x++)
+ {
+ Assert.Equal(pixels1[x, y], pixels2[x, y]);
+ }
+ }
+ }
+ // img2.Save(provider.Utility.GetTestOutputFileName("bmp", "_loaded"), new BmpEncoder());
+ ImageComparer.CheckSimilarity(source, img2);
+ }
+ }
+ }
+ }
+ }
+
[Theory]
[WithTestPatternImages(300, 300, PixelTypes.All)]
public void Resize(TestImageProvider provider)