Browse Source

Repeat count now reflects Property info

Former-commit-id: 7b8ef0819336be4e596145338d44cea70f79bf66
Former-commit-id: cbf23285111354ab19023ea4d94dc0a3bae93da9
af/merge-core
James South 11 years ago
parent
commit
5d08ac75ed
  1. 24
      src/ImageProcessor/Imaging/Formats/GifEncoder.cs

24
src/ImageProcessor/Imaging/Formats/GifEncoder.cs

@ -277,8 +277,6 @@ namespace ImageProcessor.Imaging.Formats
/// </param>
private void WriteHeaderBlock(Stream sourceGif, int w, int h)
{
int count = this.repeatCount.GetValueOrDefault(0);
// File Header signature and version.
this.WriteString(FileType);
this.WriteString(FileVersion);
@ -296,13 +294,21 @@ namespace ImageProcessor.Imaging.Formats
this.WriteColorTable(sourceGif);
// Application Extension Header
this.WriteShort(ApplicationExtensionBlockIdentifier);
this.WriteByte(ApplicationBlockSize);
this.WriteString(ApplicationIdentification);
this.WriteByte(3); // Application block length
this.WriteByte(1);
this.WriteShort(count); // Repeat count for images.
this.WriteByte(0); // Terminator
int count = this.repeatCount.GetValueOrDefault(0);
if (count != 1)
{
// 0 means loop indefinitely. count is set as play n + 1 times.
count = Math.Max(0, count - 1);
this.WriteShort(ApplicationExtensionBlockIdentifier);
this.WriteByte(ApplicationBlockSize);
this.WriteString(ApplicationIdentification);
this.WriteByte(3); // Application block length
this.WriteByte(1);
this.WriteShort(count); // Repeat count for images.
this.WriteByte(0); // Terminator
}
}
/// <summary>

Loading…
Cancel
Save