관리-도구
편집 파일: AbstractPackedBitDecoder.php
<?php declare(strict_types=1); namespace Intervention\Gif\Decoders; abstract class AbstractPackedBitDecoder extends AbstractDecoder { /** * Decode packed byte * * @return int */ protected function decodePackedByte(string $byte): int { return unpack('C', $byte)[1]; } /** * Determine if packed bit is set * * @param int $num from left to right, starting with 0 * @return bool */ protected function hasPackedBit(string $byte, int $num): bool { return (bool) $this->getPackedBits($byte)[$num]; } /** * Get packed bits * * @param int $start * @param int $length * @return string */ protected function getPackedBits(string $byte, int $start = 0, int $length = 8): string { $bits = str_pad(decbin($this->decodePackedByte($byte)), 8, '0', STR_PAD_LEFT); return substr($bits, $start, $length); } }