Вход Регистрация
Файл: 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;
    }
}
Онлайн: 0
Реклама