From 25255072f1adec5f7d1f06679a48d500e465cbd6 Mon Sep 17 00:00:00 2001 From: Brian Popow Date: Sat, 5 Dec 2020 18:05:07 +0100 Subject: [PATCH] This reverts changes from commit 20fcf84311246ef08f98fa9b554b9eeb26004b01, affecting the png encoder Renamed DeflateCompressionLevel back to PngCompressionLevel --- .../Formats/Png/IPngEncoderOptions.cs | 4 +-- ...ressionLevel.cs => PngCompressionLevel.cs} | 2 +- src/ImageSharp/Formats/Png/PngEncoder.cs | 2 +- .../Formats/Png/PngEncoderOptions.cs | 2 +- .../Formats/Png/Zlib/ZlibDeflateStream.cs | 13 ++++++++- .../Formats/Png/PngEncoderTests.cs | 28 +++++++++---------- .../Image/ImageTests.SaveAsync.cs | 2 +- 7 files changed, 32 insertions(+), 21 deletions(-) rename src/ImageSharp/Formats/Png/{DeflateCompressionLevel.cs => PngCompressionLevel.cs} (97%) 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();