Файл: vendor/intervention/gif/src/Encoders/PlainTextExtensionEncoder.php
Строк: 70
<?php
declare(strict_types=1);
namespace InterventionGifEncoders;
use InterventionGifBlocksPlainTextExtension;
class PlainTextExtensionEncoder extends AbstractEncoder
{
/**
* Create new instance.
*/
public function __construct(PlainTextExtension $entity)
{
parent::__construct($entity);
}
/**
* Encode current entity.
*/
public function encode(): string
{
if (!$this->entity->hasText()) {
return '';
}
return implode('', [
PlainTextExtension::MARKER,
PlainTextExtension::LABEL,
$this->encodeHead(),
$this->encodeTexts(),
PlainTextExtension::TERMINATOR,
]);
}
/**
* Encode head block.
*/
private function encodeHead(): string
{
return "x0cx00x00x00x00x00x00x00x00x00x00x00x00";
}
/**
* Encode text chunks.
*/
private function encodeTexts(): string
{
return implode('', array_map(
fn(string $text): string => pack('C', strlen($text)) . $text,
$this->entity->text(),
));
}
}