setHeader( Header::decode($this->handle), ); $gif->setLogicalScreenDescriptor( LogicalScreenDescriptor::decode($this->handle), ); if ($gif->getLogicalScreenDescriptor()->hasGlobalColorTable()) { $length = $gif->getLogicalScreenDescriptor()->getGlobalColorTableByteSize(); $gif->setGlobalColorTable( ColorTable::decode($this->handle, $length) ); } while ($this->viewNextByte() != Trailer::MARKER) { match ($this->viewNextBytes(2)) { // trailing "global" comment blocks which are not part of "FrameBlock" AbstractExtension::MARKER . CommentExtension::LABEL => $gif->addComment( CommentExtension::decode($this->handle) ), default => $gif->addFrame( FrameBlock::decode($this->handle) ), }; } return $gif; } }