diff --git a/src/ImageSharp/Formats/Webp/IWebpEncoderOptions.cs b/src/ImageSharp/Formats/Webp/IWebpEncoderOptions.cs index 000de4f88..d119d3031 100644 --- a/src/ImageSharp/Formats/Webp/IWebpEncoderOptions.cs +++ b/src/ImageSharp/Formats/Webp/IWebpEncoderOptions.cs @@ -10,6 +10,7 @@ namespace SixLabors.ImageSharp.Formats.Webp { /// /// Gets the webp file format used. Either lossless or lossy. + /// Defaults to lossy. /// WebpFileFormatType? FileFormat { get; } diff --git a/src/ImageSharp/Formats/Webp/WebpEncoderCore.cs b/src/ImageSharp/Formats/Webp/WebpEncoderCore.cs index 8640261b1..195fa62bd 100644 --- a/src/ImageSharp/Formats/Webp/WebpEncoderCore.cs +++ b/src/ImageSharp/Formats/Webp/WebpEncoderCore.cs @@ -70,6 +70,7 @@ namespace SixLabors.ImageSharp.Formats.Webp /// /// Indicating what file format compression should be used. + /// Defaults to lossy. /// private readonly WebpFileFormatType? fileFormat; @@ -112,43 +113,43 @@ namespace SixLabors.ImageSharp.Formats.Webp Guard.NotNull(stream, nameof(stream)); this.configuration = image.GetConfiguration(); - bool lossy; + bool lossless; if (this.fileFormat is not null) { - lossy = this.fileFormat == WebpFileFormatType.Lossy; + lossless = this.fileFormat == WebpFileFormatType.Lossless; } else { WebpMetadata webpMetadata = image.Metadata.GetWebpMetadata(); - lossy = webpMetadata.FileFormat == WebpFileFormatType.Lossy; + lossless = webpMetadata.FileFormat == WebpFileFormatType.Lossless; } - if (lossy) + if (lossless) { - using var enc = new Vp8Encoder( + using var enc = new Vp8LEncoder( this.memoryAllocator, this.configuration, image.Width, image.Height, this.quality, this.method, - this.entropyPasses, - this.filterStrength, - this.spatialNoiseShaping); + this.transparentColorMode, + this.nearLossless, + this.nearLosslessQuality); enc.Encode(image, stream); } else { - using var enc = new Vp8LEncoder( + using var enc = new Vp8Encoder( this.memoryAllocator, this.configuration, image.Width, image.Height, this.quality, this.method, - this.transparentColorMode, - this.nearLossless, - this.nearLosslessQuality); + this.entropyPasses, + this.filterStrength, + this.spatialNoiseShaping); enc.Encode(image, stream); } } diff --git a/tests/ImageSharp.Tests/Formats/WebP/WebpEncoderTests.cs b/tests/ImageSharp.Tests/Formats/WebP/WebpEncoderTests.cs index cad39224e..7043549b2 100644 --- a/tests/ImageSharp.Tests/Formats/WebP/WebpEncoderTests.cs +++ b/tests/ImageSharp.Tests/Formats/WebP/WebpEncoderTests.cs @@ -18,7 +18,7 @@ namespace SixLabors.ImageSharp.Tests.Formats.Webp private static string TestImageLossyFullPath => Path.Combine(TestEnvironment.InputImagesDirectoryFullPath, Lossy.NoFilter06); [Theory] - [WithFile(Flag, PixelTypes.Rgba32, WebpFileFormatType.Lossless)] // if its not a webp input image, it should default to lossless. + [WithFile(Flag, PixelTypes.Rgba32, WebpFileFormatType.Lossy)] // If its not a webp input image, it should default to lossy. [WithFile(Lossless.NoTransform1, PixelTypes.Rgba32, WebpFileFormatType.Lossless)] [WithFile(Lossy.Bike, PixelTypes.Rgba32, WebpFileFormatType.Lossy)] public void Encode_PreserveRatio(TestImageProvider provider, WebpFileFormatType expectedFormat)