diff --git a/src/ImageSharp/Formats/Png/IPngEncoderOptions.cs b/src/ImageSharp/Formats/Png/IPngEncoderOptions.cs
index 3a453d916c..2c05019eda 100644
--- a/src/ImageSharp/Formats/Png/IPngEncoderOptions.cs
+++ b/src/ImageSharp/Formats/Png/IPngEncoderOptions.cs
@@ -28,9 +28,9 @@ namespace SixLabors.ImageSharp.Formats.Png
///
/// Gets the compression level 1-9.
- /// Defaults to .
+ /// Defaults to .
///
- DeflateCompressionLevel CompressionLevel { get; }
+ PngCompressionLevel CompressionLevel { get; }
///
/// Gets the threshold of characters in text metadata, when compression should be used.
diff --git a/src/ImageSharp/Formats/Png/DeflateCompressionLevel.cs b/src/ImageSharp/Formats/Png/PngCompressionLevel.cs
similarity index 97%
rename from src/ImageSharp/Formats/Png/DeflateCompressionLevel.cs
rename to src/ImageSharp/Formats/Png/PngCompressionLevel.cs
index 9421bb19b9..7516e0987d 100644
--- a/src/ImageSharp/Formats/Png/DeflateCompressionLevel.cs
+++ b/src/ImageSharp/Formats/Png/PngCompressionLevel.cs
@@ -6,7 +6,7 @@ namespace SixLabors.ImageSharp.Formats.Png
///
/// Provides enumeration of available PNG compression levels.
///
- public enum DeflateCompressionLevel
+ public enum PngCompressionLevel
{
///
/// Level 0. Equivalent to .
diff --git a/src/ImageSharp/Formats/Png/PngEncoder.cs b/src/ImageSharp/Formats/Png/PngEncoder.cs
index b6cac806d2..e72e8d3d55 100644
--- a/src/ImageSharp/Formats/Png/PngEncoder.cs
+++ b/src/ImageSharp/Formats/Png/PngEncoder.cs
@@ -25,7 +25,7 @@ namespace SixLabors.ImageSharp.Formats.Png
public PngFilterMethod? FilterMethod { get; set; }
///
- public DeflateCompressionLevel CompressionLevel { get; set; } = DeflateCompressionLevel.DefaultCompression;
+ public PngCompressionLevel CompressionLevel { get; set; } = PngCompressionLevel.DefaultCompression;
///
public int TextCompressionThreshold { get; set; } = 1024;
diff --git a/src/ImageSharp/Formats/Png/PngEncoderOptions.cs b/src/ImageSharp/Formats/Png/PngEncoderOptions.cs
index 2b8a6b1925..3c17c24636 100644
--- a/src/ImageSharp/Formats/Png/PngEncoderOptions.cs
+++ b/src/ImageSharp/Formats/Png/PngEncoderOptions.cs
@@ -44,7 +44,7 @@ namespace SixLabors.ImageSharp.Formats.Png
public PngFilterMethod? FilterMethod { get; }
///
- public DeflateCompressionLevel CompressionLevel { get; } = DeflateCompressionLevel.DefaultCompression;
+ public PngCompressionLevel CompressionLevel { get; } = PngCompressionLevel.DefaultCompression;
///
public int TextCompressionThreshold { get; }
diff --git a/src/ImageSharp/Formats/Png/Zlib/ZlibDeflateStream.cs b/src/ImageSharp/Formats/Png/Zlib/ZlibDeflateStream.cs
index 5ebbdf1f15..89280ee44d 100644
--- a/src/ImageSharp/Formats/Png/Zlib/ZlibDeflateStream.cs
+++ b/src/ImageSharp/Formats/Png/Zlib/ZlibDeflateStream.cs
@@ -4,6 +4,7 @@
using System;
using System.IO;
using System.Runtime.CompilerServices;
+using SixLabors.ImageSharp.Compression;
using SixLabors.ImageSharp.Memory;
namespace SixLabors.ImageSharp.Formats.Png.Zlib
@@ -39,7 +40,6 @@ namespace SixLabors.ImageSharp.Formats.Png.Zlib
///
/// The stream responsible for compressing the input stream.
///
- // private DeflateStream deflateStream;
private DeflaterOutputStream deflateStream;
///
@@ -49,6 +49,17 @@ namespace SixLabors.ImageSharp.Formats.Png.Zlib
/// The stream to compress.
/// The compression level.
public ZlibDeflateStream(MemoryAllocator memoryAllocator, Stream stream, DeflateCompressionLevel level)
+ : this(memoryAllocator, stream, (PngCompressionLevel)level)
+ {
+ }
+
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// The memory allocator to use for buffer allocations.
+ /// The stream to compress.
+ /// The compression level.
+ public ZlibDeflateStream(MemoryAllocator memoryAllocator, Stream stream, PngCompressionLevel level)
{
int compressionLevel = (int)level;
this.rawStream = stream;
diff --git a/tests/ImageSharp.Tests/Formats/Png/PngEncoderTests.cs b/tests/ImageSharp.Tests/Formats/Png/PngEncoderTests.cs
index 18b8c32c84..58d733c4f0 100644
--- a/tests/ImageSharp.Tests/Formats/Png/PngEncoderTests.cs
+++ b/tests/ImageSharp.Tests/Formats/Png/PngEncoderTests.cs
@@ -63,19 +63,19 @@ namespace SixLabors.ImageSharp.Tests.Formats.Png
///
/// All types except Palette
///
- public static readonly TheoryData CompressionLevels
- = new TheoryData
+ public static readonly TheoryData CompressionLevels
+ = new TheoryData
{
- DeflateCompressionLevel.Level0,
- DeflateCompressionLevel.Level1,
- DeflateCompressionLevel.Level2,
- DeflateCompressionLevel.Level3,
- DeflateCompressionLevel.Level4,
- DeflateCompressionLevel.Level5,
- DeflateCompressionLevel.Level6,
- DeflateCompressionLevel.Level7,
- DeflateCompressionLevel.Level8,
- DeflateCompressionLevel.Level9,
+ PngCompressionLevel.Level0,
+ PngCompressionLevel.Level1,
+ PngCompressionLevel.Level2,
+ PngCompressionLevel.Level3,
+ PngCompressionLevel.Level4,
+ PngCompressionLevel.Level5,
+ PngCompressionLevel.Level6,
+ PngCompressionLevel.Level7,
+ PngCompressionLevel.Level8,
+ PngCompressionLevel.Level9,
};
public static readonly TheoryData PaletteSizes = new TheoryData
@@ -158,7 +158,7 @@ namespace SixLabors.ImageSharp.Tests.Formats.Png
[Theory]
[WithTestPatternImages(nameof(CompressionLevels), 24, 24, PixelTypes.Rgba32)]
- public void WorksWithAllCompressionLevels(TestImageProvider provider, DeflateCompressionLevel compressionLevel)
+ public void WorksWithAllCompressionLevels(TestImageProvider provider, PngCompressionLevel compressionLevel)
where TPixel : unmanaged, IPixel
{
foreach (PngInterlaceMode interlaceMode in InterlaceMode)
@@ -574,7 +574,7 @@ namespace SixLabors.ImageSharp.Tests.Formats.Png
PngFilterMethod pngFilterMethod,
PngBitDepth bitDepth,
PngInterlaceMode interlaceMode,
- DeflateCompressionLevel compressionLevel = DeflateCompressionLevel.DefaultCompression,
+ PngCompressionLevel compressionLevel = PngCompressionLevel.DefaultCompression,
int paletteSize = 255,
bool appendPngColorType = false,
bool appendPngFilterMethod = false,
diff --git a/tests/ImageSharp.Tests/Image/ImageTests.SaveAsync.cs b/tests/ImageSharp.Tests/Image/ImageTests.SaveAsync.cs
index 79bfdc0542..4e6b002d0d 100644
--- a/tests/ImageSharp.Tests/Image/ImageTests.SaveAsync.cs
+++ b/tests/ImageSharp.Tests/Image/ImageTests.SaveAsync.cs
@@ -138,7 +138,7 @@ namespace SixLabors.ImageSharp.Tests
public async Task SaveAsync_WithNonSeekableStream_IsCancellable()
{
using var image = new Image(4000, 4000);
- var encoder = new PngEncoder() { CompressionLevel = DeflateCompressionLevel.BestCompression };
+ var encoder = new PngEncoder() { CompressionLevel = PngCompressionLevel.BestCompression };
using var stream = new MemoryStream();
var asyncStream = new AsyncStreamWrapper(stream, () => false);
var cts = new CancellationTokenSource();