diff --git a/src/ImageSharp/Formats/Webp/Lossless/HuffmanUtils.cs b/src/ImageSharp/Formats/Webp/Lossless/HuffmanUtils.cs index f2321d6813..6320983bab 100644 --- a/src/ImageSharp/Formats/Webp/Lossless/HuffmanUtils.cs +++ b/src/ImageSharp/Formats/Webp/Lossless/HuffmanUtils.cs @@ -202,9 +202,14 @@ namespace SixLabors.ImageSharp.Formats.Webp.Lossless } // Build the Huffman tree. +#if NET5_0_OR_GREATER + Span treeSlice = tree.AsSpan().Slice(0, treeSize); + treeSlice.Sort(HuffmanTree.Compare); +#else HuffmanTree[] treeCopy = tree.AsSpan().Slice(0, treeSize).ToArray(); Array.Sort(treeCopy, HuffmanTree.Compare); treeCopy.AsSpan().CopyTo(tree); +#endif if (treeSize > 1) { diff --git a/src/ImageSharp/Formats/Webp/Lossless/Vp8LEncoder.cs b/src/ImageSharp/Formats/Webp/Lossless/Vp8LEncoder.cs index 818488696e..29dbde8b03 100644 --- a/src/ImageSharp/Formats/Webp/Lossless/Vp8LEncoder.cs +++ b/src/ImageSharp/Formats/Webp/Lossless/Vp8LEncoder.cs @@ -1204,9 +1204,14 @@ namespace SixLabors.ImageSharp.Formats.Webp.Lossless return false; } +#if NET5_0_OR_GREATER + var paletteSlice = palette.Slice(0, this.PaletteSize); + paletteSlice.Sort(); +#else uint[] paletteArray = palette.Slice(0, this.PaletteSize).ToArray(); Array.Sort(paletteArray); paletteArray.CopyTo(palette); +#endif if (PaletteHasNonMonotonousDeltas(palette, this.PaletteSize)) {