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
45.45% covered (danger)
45.45%
5 / 11
JpegImageAssetFileFilter
0.00% covered (danger)
0.00%
0 / 1
33.33% covered (danger)
33.33%
1 / 3
22.15
45.45% covered (danger)
45.45%
5 / 11
 setImageQuality
0.00% covered (danger)
0.00%
0 / 1
42
0.00% covered (danger)
0.00%
0 / 5
 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 JpegImageAssetFileFilter 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\Service\Filter\JpegFilter
     */
    public function setImageQuality($iImageQuality) {
        if (!is_numeric($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() {
        return $this->imageQuality;
    }
    /**
     * @param ressource $oImage
     * @return string
     * @throws \InvalidArgumentException
     */
    public function optimizeImage($oImage) {
        if (is_resource($oImage)) {
            ob_start();
            imagejpeg($oImage, null, $this->getImageQuality());
            return ob_get_clean();
        }
        throw new \InvalidArgumentException('Image expects a ressource, "' . gettype($oImage) . '" given');
    }
}