private function isGifAnimated(string
$filename): bool
{ if (!
($fh = @
fopen($filename, 'rb'
))) { return false;
} $count = 0;
while (!
feof($fh) &&
$count < 2
) { $chunk =
fread($fh, 1024 * 100
); // read 100kb at a time
if ($chunk === false
) { if (!Feature::
isActive('v6.6.0.0'
)) { throw new StreamNotReadableException('Animated gif file not readable'
);
} throw MediaException::
cannotOpenSourceStreamToRead($filename);
} $count +=
preg_match_all('#\x00\x21\xF9\x04.{4}\x00(\x2C|\x21)#s',
$chunk,
$matches);
} fclose($fh);
return $count > 1;
}