Imbo\Image\Transformation\Vignette::transform PHP Метод

transform() публичный Метод

public transform ( Imbo\EventManager\EventInterface $event )
$event Imbo\EventManager\EventInterface
    public function transform(EventInterface $event)
    {
        $params = $event->getArgument('params');
        $inner = $this->formatColor(isset($params['inner']) ? $params['inner'] : 'none');
        $outer = $this->formatColor(isset($params['outer']) ? $params['outer'] : '000');
        $scale = (double) max(isset($params['scale']) ? $params['scale'] : 1.5, 1);
        $image = $event->getArgument('image');
        $width = $image->getWidth();
        $height = $image->getHeight();
        $scaleX = floor($width * $scale);
        $scaleY = floor($height * $scale);
        $vignette = new Imagick();
        $vignette->newPseudoImage($scaleX, $scaleY, 'radial-gradient:' . $inner . '-' . $outer);
        $vignette->cropImage($width, $height, floor(($scaleX - $width) / 2), floor(($scaleY - $height) / 2));
        try {
            $this->imagick->compositeImage($vignette, Imagick::COMPOSITE_MULTIPLY, 0, 0);
            $image->hasBeenTransformed(true);
        } catch (ImagickException $e) {
            throw new TransformationException($e->getMessage(), 400, $e);
        }
    }