Пример #1
0
 /**
  * Executes the resize operation via Imagine.
  *
  * @param ImageInterface             $image
  * @param ResizeCoordinatesInterface $coordinates
  * @param string                     $path
  * @param ResizeOptionsInterface     $options
  *
  * @return ImageInterface
  *
  * @internal Do not call this method in your code; it will be made private in a future version
  */
 protected function executeResize(ImageInterface $image, ResizeCoordinatesInterface $coordinates, $path, ResizeOptionsInterface $options)
 {
     if (!$this->filesystem->exists(dirname($path))) {
         $this->filesystem->mkdir(dirname($path));
     }
     $imagineOptions = $options->getImagineOptions();
     $imagineImage = $image->getImagine()->open($image->getPath())->resize($coordinates->getSize())->crop($coordinates->getCropStart(), $coordinates->getCropSize());
     if (isset($imagineOptions['interlace'])) {
         try {
             $imagineImage->interlace($imagineOptions['interlace']);
         } catch (ImagineRuntimeException $e) {
             // Ignore failed interlacing
         }
     }
     $imagineImage->save($path, $imagineOptions);
     return $this->createImage($image, $path);
 }