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);
}
}