Файл: vendor/intervention/gif/src/Decoders/ImageDataDecoder.php
Строк: 36
<?php
declare(strict_types=1);
namespace InterventionGifDecoders;
use InterventionGifAbstractEntity;
use InterventionGifBlocksDataSubBlock;
use InterventionGifBlocksImageData;
use InterventionGifExceptionsFormatException;
class ImageDataDecoder extends AbstractDecoder
{
/**
* Decode current source
*
* @throws FormatException
* @return ImageData
*/
public function decode(): ImageData
{
$data = new ImageData();
// LZW min. code size
$char = $this->getNextByte();
$size = (int) unpack('C', $char)[1];
$data->setLzwMinCodeSize($size);
do {
// decode sub blocks
$char = $this->getNextByte();
$size = (int) unpack('C', $char)[1];
if ($size > 0) {
$data->addBlock(new DataSubBlock($this->getNextBytes($size)));
}
} while ($char !== AbstractEntity::TERMINATOR);
return $data;
}
}