/**
  * Perform orientation image manipulation.
  * @param  Image $image The source image.
  * @return Image The manipulated image.
  */
 public function run(Image $image)
 {
     $orientation = $this->getOrientation();
     if ($orientation === 'auto') {
         return $image->orientate();
     }
     return $image->rotate($orientation);
 }
Exemple #2
1
 /**
  * Correct image orientation according to Exif data
  *
  * @param  \Intervention\Image\Image $image
  * @return boolean
  */
 public function execute($image)
 {
     switch ($image->exif('Orientation')) {
         case 2:
             $image->flip();
             break;
         case 3:
             $image->rotate(180);
             break;
         case 4:
             $image->rotate(180)->flip();
             break;
         case 5:
             $image->rotate(270)->flip();
             break;
         case 6:
             $image->rotate(270);
             break;
         case 7:
             $image->rotate(90)->flip();
             break;
         case 8:
             $image->rotate(90);
             break;
     }
     return true;
 }
 public function process()
 {
     $data = $this->loadData();
     if ($data !== true) {
         return $this->failure($data);
     }
     $mobile = (int) $this->getProperty('mobile', 0);
     if ($mobile == 1) {
         $orientation = $this->img->exif('Orientation');
         switch ($orientation) {
             case 3:
                 $this->img->rotate(180);
                 break;
             case 6:
                 $this->img->rotate(-90);
                 break;
             case 8:
                 $this->img->rotate(90);
                 break;
         }
     }
     if (isset($this->data['rotate'])) {
         $rotate = $this->data['rotate'] * -1.0;
         $this->img->rotate($rotate);
     }
     $crop = $this->getProperty('crop', 0);
     if ($crop == 1 && isset($this->data['width']) && isset($this->data['height'])) {
         $width = intval($this->data['width']);
         $height = intval($this->data['height']);
         if ($height != 0 && $width != 0) {
             $this->img->crop($width, $height, intval($this->data['x']), intval($this->data['y']));
         }
     }
     $fileName = $this->generateUniqueFileName();
     $width = (int) $this->md->getOption('resizer.width', null, 0);
     $width = empty($width) ? null : $width;
     $height = (int) $this->md->getOption('resizer.height', null, 0);
     $height = empty($height) ? null : $height;
     $profileName = $this->getProperty('profile', '');
     if (!empty($profileName) && $crop == 1) {
         $profiles = $this->modx->fromJSON($this->md->getOption('cropper.profiles', null, '[]'));
         foreach ($profiles as $profile) {
             if (!isset($profile['name']) || $profile['name'] != $profileName) {
                 continue;
             }
             $profileWidth = (int) $profile['width'];
             $profileHeight = (int) $profile['height'];
             $width = empty($profileWidth) ? $width : $profileWidth;
             $height = empty($profileHeight) ? $height : $profileHeight;
             break;
         }
     }
     if ($width != null || $height != null) {
         $this->img->resize($width, $height, function ($constraint) {
             /** @var \Intervention\Image\Constraint $constraint */
             $constraint->aspectRatio();
             $constraint->upsize();
         });
     }
     $this->img->save($this->uploadPath . $fileName . '.' . $this->extension);
     return $this->success('', array('path' => $this->uploadURL . $fileName . '.' . $this->extension, 'name' => $this->originalName));
 }
 /**
  * Applies filter effects to the given image
  *
  * @param Image\Image $image The image to filter.
  *
  * @return Image\Image The filtered image.
  *
  * @throws FilterException if an invalid mode has been given.
  */
 public function applyFilter(Image\Image $image)
 {
     switch ($this->mode) {
         case self::FLIP_HORIZONTAL:
             return $image->flip('h');
         case self::FLIP_VERTICAL:
             return $image->flip('v');
         case self::ROTATE_LEFT:
             return $image->rotate(90);
         case self::ROTATE_RIGHT:
             return $image->rotate(-90);
         default:
             throw new FilterException('De bewerking die u gekozen heeft bestaat niet.', 1);
     }
 }
Exemple #5
0
 /**
  * Perform orientation image manipulation.
  * @param  Request $request The request object.
  * @param  Image   $image   The source image.
  * @return Image   The manipulated image.
  */
 public function run(Request $request, Image $image)
 {
     $orientation = $this->getOrientation($request->get('or'));
     if ($orientation === 'auto') {
         return $image->orientate();
     }
     return $image->rotate($orientation);
 }
Exemple #6
0
 /**
  * Rotate an image by the given number of degrees.
  *
  * @param  int $degrees The number of (clockwise) degrees to rotate the image.
  * @param  string|null $background hexadecimal background color
  * @param  bool $random
  */
 public function rotate($degrees, $background = null, $random = false)
 {
     if ($background) {
         $background = trim($background);
     } else {
         $background = "ffffff";
     }
     if ($random) {
         $deg = abs((double) $degrees);
         $degrees = rand(-1 * $deg, $deg);
     }
     $this->image->rotate($degrees, $background);
 }
Exemple #7
0
 protected function rotation()
 {
     // Auto orientate
     $this->image->orientate();
     if ($this->flip) {
         $this->image->flip($this->flip);
     }
     // Rotate within the existing frame
     if ($this->rotation) {
         $width = $this->image->getWidth();
         $height = $this->image->getHeight();
         $this->image->rotate($this->rotation);
         $this->image->crop($width, $height);
     }
     // Rotate entire image
     if ($this->orientation) {
         $this->image->rotate($this->orientation);
     }
 }
Exemple #8
0
 /**
  * Rotate image with given angle
  *
  * @param float $angle
  * @param string $color
  * @param int $ignore_transparent
  * @return \Intervention\Image\Image 
  * @static 
  */
 public static function rotate($angle = 0, $bgcolor = '#000000', $ignore_transparent = 0)
 {
     return \Intervention\Image\Image::rotate($angle, $bgcolor, $ignore_transparent);
 }
 /**
  * Applies filter to given image
  *
  * @param  Image $image
  * @return Image
  */
 public function applyFilter(Image $image)
 {
     return $image->rotate($this->rotate);
 }
 public function process(Image $image)
 {
     if ($this->request->query->has('rotate')) {
         $image->rotate((double) $this->request->query->get('rotate'));
     }
 }
Exemple #11
0
 /**
  * Handle the image manipulation request
  * @param  \Intervention\Image\Image $image
  * @param  array                     $options
  * @return \Intervention\Image\Image
  */
 public function handle($image, $options)
 {
     $options = array_merge($this->defaults, $options);
     return $image->rotate($options['angle'], $options['bgcolor']);
 }