private async Task ReadInternalAsync(Stream stream, IEnumerable <GifExtension> controlExtensions) { this.Descriptor = await GifImageDescriptor.ReadAsync(stream).ConfigureAwait(false); if (this.Descriptor.HasLocalColorTable) { this.LocalColorTable = await GifHelpers.ReadColorTableAsync(stream, this.Descriptor.LocalColorTableSize).ConfigureAwait(false); } this.ImageData = await GifImageData.ReadAsync(stream).ConfigureAwait(false); this.Extensions = (IList <GifExtension>)controlExtensions.ToList <GifExtension>().AsReadOnly(); this.GraphicControl = this.Extensions.OfType <GifGraphicControlExtension>().FirstOrDefault <GifGraphicControlExtension>(); }
private async Task ReadInternalAsync(Stream stream) { this.Header = await GifHeader.ReadAsync(stream).ConfigureAwait(false); if (this.Header.LogicalScreenDescriptor.HasGlobalColorTable) { this.GlobalColorTable = await GifHelpers.ReadColorTableAsync(stream, this.Header.LogicalScreenDescriptor.GlobalColorTableSize).ConfigureAwait(false); } await this.ReadFramesAsync(stream).ConfigureAwait(false); GifApplicationExtension ext = this.Extensions.OfType <GifApplicationExtension>().FirstOrDefault <GifApplicationExtension>(new Func <GifApplicationExtension, bool>(GifHelpers.IsNetscapeExtension)); this.RepeatCount = ext != null?GifHelpers.GetRepeatCount(ext) : (ushort)1; }
private async Task ReadInternalAsync(Stream stream, IEnumerable <GifExtension> controlExtensions) { // Note: at this point, the Image Separator (0x2C) has already been read Descriptor = await GifImageDescriptor.ReadAsync(stream).ConfigureAwait(false); if (Descriptor.HasLocalColorTable) { LocalColorTable = await GifHelpers.ReadColorTableAsync(stream, Descriptor.LocalColorTableSize).ConfigureAwait(false); } ImageData = await GifImageData.ReadAsync(stream).ConfigureAwait(false); Extensions = controlExtensions.ToList().AsReadOnly(); GraphicControl = Extensions.OfType <GifGraphicControlExtension>().FirstOrDefault(); }
private async Task ReadInternalAsync(Stream stream) { Header = await GifHeader.ReadAsync(stream).ConfigureAwait(false); if (Header.LogicalScreenDescriptor.HasGlobalColorTable) { GlobalColorTable = await GifHelpers.ReadColorTableAsync(stream, Header.LogicalScreenDescriptor.GlobalColorTableSize).ConfigureAwait(false); } await ReadFramesAsync(stream).ConfigureAwait(false); var netscapeExtension = Extensions .OfType <GifApplicationExtension>() .FirstOrDefault(GifHelpers.IsNetscapeExtension); RepeatCount = netscapeExtension != null ? GifHelpers.GetRepeatCount(netscapeExtension) : (ushort)1; }