Browse Source

Skip over iTXT header

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

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

@ -662,6 +662,7 @@ namespace SixLabors.ImageSharp.Formats.Png
/// <param name="meta">The image metadata.</param>
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);
}

Loading…
Cancel
Save