public function transform(EventInterface $event)
{
$image = $event->getArgument('image');
$params = $event->getArgument('params');
if (empty($params['type'])) {
throw new TransformationException('Missing required parameter: type', 400);
}
$type = $params['type'];
if ($image->getExtension() === $type) {
// The requested extension is the same as the image, no conversion is needed
return;
}
try {
$this->imagick->setImageFormat($type);
$mimeType = array_search($type, Image::$mimeTypes);
$image->setMimeType($mimeType)->setExtension($type)->hasBeenTransformed(true);
} catch (ImagickException $e) {
throw new TransformationException($e->getMessage(), 400, $e);
}
}