From 5ad7ae5089551f60df6fcdc78b5fdf2686b1c01b Mon Sep 17 00:00:00 2001 From: Jason Nelson Date: Fri, 8 Jun 2018 11:50:16 -0700 Subject: [PATCH] Stackalloc bmp header --- src/ImageSharp/Formats/Bmp/BmpEncoderCore.cs | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/ImageSharp/Formats/Bmp/BmpEncoderCore.cs b/src/ImageSharp/Formats/Bmp/BmpEncoderCore.cs index 2b0c907338..e5bf6d9cb6 100644 --- a/src/ImageSharp/Formats/Bmp/BmpEncoderCore.cs +++ b/src/ImageSharp/Formats/Bmp/BmpEncoderCore.cs @@ -66,16 +66,25 @@ namespace SixLabors.ImageSharp.Formats.Bmp reserved: 0, fileSize: 54 + infoHeader.ImageSize); - byte[] buffer = new byte[40]; // TODO: stackalloc - +#if NETCOREAPP2_1 + Span buffer = stackalloc byte[40]; +#else + byte[] buffer = new byte[40]; +#endif fileHeader.WriteTo(buffer); +#if NETCOREAPP2_1 + stream.Write(buffer.Slice(0, BmpFileHeader.Size)); +#else stream.Write(buffer, 0, BmpFileHeader.Size); - +#endif infoHeader.WriteTo(buffer); +#if NETCOREAPP2_1 + stream.Write(buffer.Slice(0, 40)); +#else stream.Write(buffer, 0, 40); - +#endif this.WriteImage(stream, image.Frames.RootFrame); stream.Flush();