Browse Source

Another allocation optimization

pull/1918/head
Ynse Hoornenborg 4 years ago
parent
commit
d879dd82f0
  1. 5
      src/ImageSharp/Formats/Png/PngEncoderCore.cs

5
src/ImageSharp/Formats/Png/PngEncoderCore.cs

@ -680,10 +680,11 @@ namespace SixLabors.ImageSharp.Formats.Png
return;
}
byte[] payload = new byte[xmpData.Length + PngConstants.XmpKeyword.Length + 5];
using IMemoryOwner<byte> owner = this.memoryAllocator.Allocate<byte>(xmpData.Length + PngConstants.XmpKeyword.Length + 5);
Span<byte> payload = owner.GetSpan();
PngConstants.XmpKeyword.CopyTo(payload);
int bytesWritten = PngConstants.XmpKeyword.Length + iTxtHeaderSize;
xmpData.CopyTo(payload.AsSpan(bytesWritten));
xmpData.CopyTo(payload.Slice(bytesWritten));
this.WriteChunk(stream, PngChunkType.InternationalText, payload);
}

Loading…
Cancel
Save