Esempio n. 1
0
        internal static GifBlock ReadBlock(
            Stream stream,
            IEnumerable <GifExtension> controlExtensions,
            bool metadataOnly)
        {
            int blockId = stream.ReadByte();

            if (blockId < 0)
            {
                throw GifHelpers.UnexpectedEndOfStreamException();
            }
            if (blockId == 33)
            {
                return((GifBlock)GifExtension.ReadExtension(stream, controlExtensions, metadataOnly));
            }
            if (blockId == 44)
            {
                return((GifBlock)GifFrame.ReadFrame(stream, controlExtensions, metadataOnly));
            }
            if (blockId == 59)
            {
                return((GifBlock)GifTrailer.ReadTrailer());
            }
            throw GifHelpers.UnknownBlockTypeException(blockId);
        }