Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
0.00% |
0 / 1 |
|
50.00% |
1 / 2 |
CRAP | |
83.33% |
5 / 6 |
GifAssetFileFilter | |
0.00% |
0 / 1 |
|
50.00% |
1 / 2 |
4.07 | |
83.33% |
5 / 6 |
assetFileShouldBeOptimize | |
100.00% |
1 / 1 |
2 | |
100.00% |
1 / 1 |
|||
optimizeImage | |
0.00% |
0 / 1 |
2.03 | |
80.00% |
4 / 5 |
<?php | |
namespace AssetsBundle\AssetFile\AssetFileFilter\ImageAssetFileFilter; | |
class GifAssetFileFilter extends \AssetsBundle\AssetFile\AssetFileFilter\ImageAssetFileFilter\AbstractImageAssetFileFilter | |
{ | |
/** | |
* @var string | |
*/ | |
protected $assetFileFilterName = 'Gif'; | |
/** | |
* @param \AssetsBundle\AssetFile\AssetFile $oAssetFile | |
* @return bool | |
*/ | |
protected function assetFileShouldBeOptimize(string $sContent) : bool | |
{ | |
// Check if image is not an animated Gif | |
return parent::assetFileShouldBeOptimize($sContent) && !preg_match('#(\x00\x21\xF9\x04.{4}\x00\x2C.*){2,}#s', $sContent); | |
} | |
/** | |
* @param resource $rImage | |
* @return string | |
* @throws \InvalidArgumentException | |
*/ | |
public function optimizeImage($rImage) : string | |
{ | |
if (is_resource($rImage)) { | |
ob_start(); | |
imagegif($rImage); | |
return ob_get_clean(); | |
} | |
throw new \InvalidArgumentException('Image expects a resource, "' . gettype($rImage) . '" given'); | |
} | |
} |