예제 #1
0
 /**
  * Process image crop.
  *
  * @param array $coordinates
  * @param ImageInterface $image
  *
  * @return array
  */
 public function process(array $coordinates, ImageInterface $image)
 {
     $path = $this->imageCropper->crop($image, $coordinates);
     $image->setCropperCoordinates($coordinates);
     $image->setPath($path);
     $this->imageManager->save();
     return array('original_path' => $image->getOriginalPath(), 'path' => $image->getPath());
 }
예제 #2
0
 public function modalAction(Request $request)
 {
     $image = null;
     if (null !== ($filename = $request->get('filename', null))) {
         $image = $this->imageManager->findByFilename($filename);
     }
     return $this->templating->renderResponse('SilvestraMediaBundle:Form:modal.html.twig', array('image' => $image));
 }
예제 #3
0
 public function process(UploadedFile $uploadedImage, array $config)
 {
     if ($errors = $this->validateUploadImage($uploadedImage, $config)) {
         return array('errors' => $errors);
     }
     $image = $this->imageUploader->createImage($uploadedImage);
     $this->imageManager->save();
     return array('original_path' => $image->getOriginalPath(), 'filename' => $image->getFilename());
 }
예제 #4
0
 /**
  * Generate unique filename.
  *
  * @param string $originalFilename
  *
  * @return string
  */
 public function generateUniqueFilename($originalFilename)
 {
     $index = 0;
     $filename = pathinfo($originalFilename, PATHINFO_FILENAME);
     $extension = pathinfo($originalFilename, PATHINFO_EXTENSION);
     while ($this->imageManager->findByFilename($originalFilename)) {
         $index++;
         $originalFilename = $filename . '-' . $index . '.' . $extension;
     }
     return $originalFilename;
 }
 public function cropAction(Request $request)
 {
     $coordinates = $request->get('coordinates', null);
     $filename = $request->get('filename', null);
     if (!$filename || null === $coordinates) {
         throw new NotFoundHttpException('Invalid coordinates or filename request parameters!');
     }
     $image = $this->imageManager->findByFilename($filename);
     if (null === $image) {
         throw new NotFoundImageException('Image not found!');
     }
     $data = $this->imageCropHandler->process($coordinates, $image);
     $data['thumbnail_path'] = $this->imageResizer->resize($image->getPath(), array(150, 150), ImageResizerInterface::INSET);
     return new JsonResponse($data);
 }
예제 #6
0
 /**
  * Create image.
  *
  * @param UploadedFile $uploadedImage
  *
  * @return ImageInterface
  */
 public function createImage(UploadedFile $uploadedImage)
 {
     $image = $this->imageManager->create();
     $filename = $this->getUniqueFilename($uploadedImage);
     $image->setFilename($filename);
     $image->setMimeType($uploadedImage->getClientMimeType());
     $image->setOrderNr(1);
     $image->setOriginalPath($this->filesystem->getRelativeFilePath($filename));
     $image->setPath($image->getOriginalPath());
     $image->setSize($uploadedImage->getClientSize());
     $image->setTemporary(true);
     $this->imageManager->add($image);
     $fileDir = $this->filesystem->getActualFileDir($filename);
     $uploadedImage->move($fileDir, $image->getFilename());
     return $image;
 }
예제 #7
0
 /**
  * Reverse transform.
  *
  * @param ImageInterface $image
  *
  * @return ImageInterface
  *
  * @throws TransformationFailedException
  */
 public function reverseTransform($image)
 {
     if (null === $image) {
         return null;
     }
     $filename = $image->getFilename();
     if (empty($filename)) {
         return null;
     }
     if ($this->preFilename && $this->preFilename !== $filename) {
         $this->imageManager->remove($image);
     }
     $image = $this->imageManager->findByFilename($filename);
     if (null === $image) {
         throw new TransformationFailedException();
     }
     $image->setTemporary(false);
     return $image;
 }
예제 #8
0
 /**
  * {@inheritdoc}
  */
 public function getClass()
 {
     return $this->defaultManager->getClass();
 }