Code Coverage
 
Classes and Traits
Functions and Methods
Lines
Total
0.00% covered (danger)
0.00%
0 / 1
33.33% covered (danger)
33.33%
1 / 3
CRAP
41.67% covered (danger)
41.67%
5 / 12
JpegAssetFileFilter
0.00% covered (danger)
0.00%
0 / 1
33.33% covered (danger)
33.33%
1 / 3
25.08
41.67% covered (danger)
41.67%
5 / 12
 setImageQuality
0.00% covered (danger)
0.00%
0 / 1
42.00
0.00% covered (danger)
0.00%
0 / 6
 getImageQuality
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
1 / 1
 optimizeImage
0.00% covered (danger)
0.00%
0 / 1
2.03
80.00% covered (warning)
80.00%
4 / 5
<?php
namespace AssetsBundle\AssetFile\AssetFileFilter\ImageAssetFileFilter;
class JpegAssetFileFilter extends \AssetsBundle\AssetFile\AssetFileFilter\ImageAssetFileFilter\AbstractImageAssetFileFilter
{
    /**
     * @var string
     */
    protected $assetFileFilterName = 'Jpeg';
    /**
     * Compression level: from 0 (worst quality, smaller file) to 100 (best quality, biggest file)
     * @var int
     */
    protected $imageQuality = 30;
    /**
     * @param int $iImageQuality
     * @throws \InvalidArgumentException
     * @return \AssetsBundle\AssetFile\AssetFileFilter\ImageAssetFileFilter\JpegAssetFileFilter
     */
    public function setImageQuality(int $iImageQuality) : \AssetsBundle\AssetFile\AssetFileFilter\ImageAssetFileFilter\JpegAssetFileFilter
    {
        if (!is_int($iImageQuality) || $iImageQuality < 0 || $iImageQuality > 100) {
            throw new \InvalidArgumentException(sprintf(
                    '$iImageQuality expects int from 0 to 100 "%s" given',
                is_scalar($iImageQuality) ? $iImageQuality : (is_object($iImageQuality) ? get_class($iImageQuality) : gettype($iImageQuality))
            ));
        }
        $this->imageQuality = (int) $iImageQuality;
        return $this;
    }
    /**
     * @return int
     */
    public function getImageQuality() : int
    {
        return $this->imageQuality;
    }
    /**
     * @param resource $rImage
     * @return string
     * @throws \InvalidArgumentException
     */
    public function optimizeImage($rImage) : string
    {
        if (is_resource($rImage)) {
            ob_start();
            imagejpeg($rImage, null, $this->getImageQuality());
            return ob_get_clean();
        }
        throw new \InvalidArgumentException('Image expects a ressource, "' . gettype($rImage) . '" given');
    }
}