diff --git a/src/ImageSharp/Formats/Png/PngEncoderCore.cs b/src/ImageSharp/Formats/Png/PngEncoderCore.cs index d9b4375c60..80c81fda21 100644 --- a/src/ImageSharp/Formats/Png/PngEncoderCore.cs +++ b/src/ImageSharp/Formats/Png/PngEncoderCore.cs @@ -662,6 +662,7 @@ namespace SixLabors.ImageSharp.Formats.Png /// The image metadata. private void WriteXmpChunk(Stream stream, ImageMetadata meta) { + const int iTxtHeaderSize = 5; if (((this.options.ChunkFilter ?? PngChunkFilter.None) & PngChunkFilter.ExcludeTextChunks) == PngChunkFilter.ExcludeTextChunks) { return; @@ -682,12 +683,7 @@ namespace SixLabors.ImageSharp.Formats.Png byte[] payload = new byte[xmpData.Length + PngConstants.XmpKeyword.Length + 5]; PngConstants.XmpKeyword.CopyTo(payload); - int bytesWritten = PngConstants.XmpKeyword.Length; - payload[bytesWritten++] = 0; // Keyword string terminator - payload[bytesWritten++] = 0; // Compression flag - payload[bytesWritten++] = 0; // Compression method - payload[bytesWritten++] = 0; // Language tag - payload[bytesWritten++] = 0; // Translated keyword + int bytesWritten = PngConstants.XmpKeyword.Length + iTxtHeaderSize; xmpData.CopyTo(payload.AsSpan(bytesWritten)); this.WriteChunk(stream, PngChunkType.InternationalText, payload); }