/** * 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); }
/** * 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); } }
/** * 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); }
/** * 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); }
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); } }
/** * 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')); } }
/** * 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']); }