/** * @param \Sonata\MediaBundle\Model\MediaInterface $media * @param \Gaufrette\File $in * @param \Gaufrette\File $out * @param string $format * @param array $settings * @return void */ public function resize(MediaInterface $media, File $in, File $out, $format, $settings) { if (!isset($settings['width'])) { throw new \RuntimeException(sprintf('Width parameter is missing in context "%s" for provider "%s"', $media->getContext(), $media->getProviderClass())); } $image = $this->getAdapter()->load($in->getContent()); if ($settings['height'] == null) { $size = $image->getSize(); $settings['height'] = (int) ($settings['width'] * $size->getHeight() / $size->getWidth()); } $content = $image->thumbnail(new Box($settings['width'], $settings['height']), $this->getMode())->get($format); $out->setContent($content); }