diff --git a/Directory.Build.props b/Directory.Build.props index 2f9863561c..de3583a0c8 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -31,27 +31,27 @@ - $(DefineConstants);SUPPORTS_MATHF;SUPPORTS_HASHCODE;SUPPORTS_EXTENDED_INTRINSICS;SUPPORTS_SPAN_STREAM;SUPPORTS_ENCODING_STRING;SUPPORTS_RUNTIME_INTRINSICS;SUPPORTS_CODECOVERAGE;SUPPORTS_BASE64SPAN + $(DefineConstants);SUPPORTS_MATHF;SUPPORTS_HASHCODE;SUPPORTS_EXTENDED_INTRINSICS;SUPPORTS_SPAN_STREAM;SUPPORTS_ENCODING_STRING;SUPPORTS_RUNTIME_INTRINSICS;SUPPORTS_CODECOVERAGE - $(DefineConstants);SUPPORTS_MATHF;SUPPORTS_HASHCODE;SUPPORTS_EXTENDED_INTRINSICS;SUPPORTS_SPAN_STREAM;SUPPORTS_ENCODING_STRING;SUPPORTS_CODECOVERAGE;SUPPORTS_BASE64SPAN + $(DefineConstants);SUPPORTS_MATHF;SUPPORTS_HASHCODE;SUPPORTS_EXTENDED_INTRINSICS;SUPPORTS_SPAN_STREAM;SUPPORTS_ENCODING_STRING;SUPPORTS_CODECOVERAGE - $(DefineConstants);SUPPORTS_MATHF;SUPPORTS_CODECOVERAGE;SUPPORTS_BASE64SPAN + $(DefineConstants);SUPPORTS_MATHF;SUPPORTS_CODECOVERAGE $(DefineConstants);SUPPORTS_MATHF;SUPPORTS_HASHCODE;SUPPORTS_SPAN_STREAM;SUPPORTS_ENCODING_STRING;SUPPORTS_CODECOVERAGE diff --git a/src/ImageSharp/ImageExtensions.cs b/src/ImageSharp/ImageExtensions.cs index 3cb4f433ec..d7ac0b174d 100644 --- a/src/ImageSharp/ImageExtensions.cs +++ b/src/ImageSharp/ImageExtensions.cs @@ -115,29 +115,12 @@ namespace SixLabors.ImageSharp public static string ToBase64String(this Image source, IImageFormat format) where TPixel : unmanaged, IPixel { - using (var stream = new MemoryStream()) - { - source.Save(stream, format); - - // Always available. - stream.TryGetBuffer(out ArraySegment buffer); + using var stream = new MemoryStream(); + source.Save(stream, format); -#if !SUPPORTS_BASE64SPAN - - byte[] sharedBuffer = ArrayPool.Shared.Rent(buffer.Count); - try - { - buffer.AsSpan().CopyTo(sharedBuffer); - return $"data:{format.DefaultMimeType};base64,{Convert.ToBase64String(sharedBuffer)}"; - } - finally - { - ArrayPool.Shared.Return(sharedBuffer); - } -#else - return $"data:{format.DefaultMimeType};base64,{Convert.ToBase64String(buffer)}"; -#endif - } + // Always available. + stream.TryGetBuffer(out ArraySegment buffer); + return $"data:{format.DefaultMimeType};base64,{Convert.ToBase64String(buffer.Array, 0, (int)stream.Length)}"; } } }