Exemple #1
0
 /**
  * Save an Picture object to the file system.
  * Runs OptimizeFileJob on the file after it is saved.
  *
  * @param Picture        $picture
  * @param string         $directory One of the *_DIR constants.
  * @param string         $filename
  * @param ImageFile|null $originalImageFile
  *
  * @throws Exception
  * @return ImageFile
  */
 public function savePicture(Picture $picture, $directory = self::IMAGE_DIR, $filename = null, ImageFile $originalImageFile = null)
 {
     if (!$filename) {
         $mime = $picture->mime();
         if (empty($mime)) {
             $mime = 'image/jpeg';
         }
         $extension = $this->getExtensionForMime($mime);
         $filename = $this->generateFilename($extension);
     }
     $relativePath = $directory . '/' . $filename;
     // Save locally
     if (!$this->savePictureLocally($picture, $relativePath)) {
         throw new Exception('Unable to save file locally.');
     }
     $imageFile = new ImageFile(['originalImageFileId' => $originalImageFile ? $originalImageFile->getId() : null, 'directory' => $directory, 'filename' => $filename, 'width' => $picture->getWidth(), 'height' => $picture->getHeight(), 'size' => $picture->filesize()]);
     $imageFile->save();
     // Optimize and copy to remote storage
     $this->dispatch(new OptimizeFileJob($imageFile));
     return $imageFile;
 }
Exemple #2
0
 /**
  * @param ImageFile|null $imageFile
  */
 public function setThumbnailImageFile(ImageFile $imageFile = null)
 {
     if ($imageFile) {
         $this->thumbnailImageFileId = $imageFile->getId();
     } else {
         $this->thumbnailImageFileId = null;
     }
 }
Exemple #3
0
 /**
  * @param ImageFile|null $imageFile
  */
 public function setUncroppedImageFile(ImageFile $imageFile = null)
 {
     if ($imageFile) {
         $this->uncroppedImageFileId = $imageFile->getId();
     } else {
         $this->uncroppedImageFileId = null;
     }
 }