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)); }
/** * Crop an image to the rectangle specified by the given rectangle. * * @param int $xoffset * The top left coordinate, in pixels, of the crop area (x axis value). * @param int $yoffset * The top left coordinate, in pixels, of the crop area (y axis value). * @param int $width * The target width, in pixels. * @param int $height * The target height, in pixels. * * @throws \LogicException if the parameters are wrong */ public function crop($xoffset, $yoffset, $width, $height) { if ($xoffset === null) { throw new \LogicException('"xoffset" must not be null for "crop"'); } if ($yoffset === null) { throw new \LogicException('"yoffset" must not be null for "crop"'); } if ($width === null) { throw new \LogicException('"width" must not be null for "crop"'); } if ($height === null) { throw new \LogicException('"height" must not be null for "crop"'); } $this->image->crop($width, $height, $xoffset, $yoffset); }
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); } }
/** * Applies filter to given image * * @param Image $image * @return Image */ public function applyFilter(Image $image) { return $image->crop((int) $this->with, (int) $this->height, (int) $this->x, (int) $this->y); }
public function applyFilter(Image $image) { return $image->crop($this->width, $this->height, $this->coordinatesX, $this->coordinatesY); }
public function apply(Image $image) { $image->crop($this->width, $this->height); }
public function crop($width, $height) { $this->image->crop($width, $height); return $this; }
/** * Crop the current image * * @param integer $width * @param integer $height * @param integer $pos_x * @param integer $pos_y * @return \Intervention\Image\Image * @static */ public static function crop($width, $height, $pos_x = null, $pos_y = null) { return \Intervention\Image\Image::crop($width, $height, $pos_x, $pos_y); }
public function cropImage(ImageLayer $source, int $width, int $height, int $startX, int $startY) : ImageLayer { $source->crop($width, $height, $startX, $startY); return $source; }
/** * Crop the image. * * @param integer $width * @param integer $height * @param integer|null $x * @param integer|null $y * @return $this */ public function cropImage($width, $height, $x = null, $y = null) { $this->image->crop($width, $height, $x, $y); return $this; }
/** * Handle the image manipulation request * @param \Intervention\Image\Image $image * @param array $options * @return mixed */ public function handle($image, $options) { $options = array_merge($this->defaults, $options); return $image->crop($options['width'], $options['height'], $options['x'], $options['y']); }
/** * Applies filter effects to the given image * * @param Image\Image $image The image to filter. * * @return Image\Image The filtered image. */ public function applyFilter(Image\Image $image) { return $image->crop($this->width, $this->height, $this->x, $this->y); }
public function process(Image $image) { if ($this->request->query->has('crop') && !$this->request->query->has('width') && !$this->request->query->has('height') && 1 === preg_match('#^([0-9]+)[x\\:]([0-9]+)$#', $this->request->query->get('crop'), $crop)) { $image->crop($crop[1], $crop[2]); } }