From 989166aced34485654756870206303ff62608270 Mon Sep 17 00:00:00 2001 From: Oliver Vogel Date: Thu, 11 Nov 2021 14:25:23 +0000 Subject: [PATCH] CropResizeModifier --- .../Modifiers/AbstractResizeModifier.php | 30 ------------- src/Drivers/Gd/Modifiers/FitDownModifier.php | 18 -------- src/Drivers/Gd/Modifiers/FitModifier.php | 40 ----------------- .../Imagick/Modifiers/CropResizeModifier.php | 45 +++++++++++++++++++ .../Imagick/Modifiers/ResizeModifier.php | 36 --------------- 5 files changed, 45 insertions(+), 124 deletions(-) delete mode 100644 src/Drivers/Abstract/Modifiers/AbstractResizeModifier.php delete mode 100644 src/Drivers/Gd/Modifiers/FitDownModifier.php delete mode 100644 src/Drivers/Gd/Modifiers/FitModifier.php create mode 100644 src/Drivers/Imagick/Modifiers/CropResizeModifier.php delete mode 100644 src/Drivers/Imagick/Modifiers/ResizeModifier.php diff --git a/src/Drivers/Abstract/Modifiers/AbstractResizeModifier.php b/src/Drivers/Abstract/Modifiers/AbstractResizeModifier.php deleted file mode 100644 index 9f9b04f2..00000000 --- a/src/Drivers/Abstract/Modifiers/AbstractResizeModifier.php +++ /dev/null @@ -1,30 +0,0 @@ -target = $target; - } - - protected function getCropSize(ImageInterface $image): SizeInterface - { - return $image->getSize(); - } - - protected function getResizeSize(ImageInterface $image): SizeInterface - { - return $this->target; - } -} diff --git a/src/Drivers/Gd/Modifiers/FitDownModifier.php b/src/Drivers/Gd/Modifiers/FitDownModifier.php deleted file mode 100644 index 18802f22..00000000 --- a/src/Drivers/Gd/Modifiers/FitDownModifier.php +++ /dev/null @@ -1,18 +0,0 @@ -resizeGeometrically($this->getCropSize($image)) - ->toWidth($this->target->getWidth()) - ->toHeight($this->target->getHeight()) - ->scaleDown(); - } -} diff --git a/src/Drivers/Gd/Modifiers/FitModifier.php b/src/Drivers/Gd/Modifiers/FitModifier.php deleted file mode 100644 index 9c69bc4f..00000000 --- a/src/Drivers/Gd/Modifiers/FitModifier.php +++ /dev/null @@ -1,40 +0,0 @@ -getSize(); - - // auto height - $size = $this->resizeGeometrically($this->target) - ->toWidth($imagesize->getWidth()) - ->scale(); - - if (!$size->fitsInto($imagesize)) { - // auto width - $size = $this->resizeGeometrically($this->target) - ->toHeight($imagesize->getHeight()) - ->scale(); - } - - return $size->alignPivotTo( - $imagesize->alignPivot($this->position), - $this->position - ); - } - - protected function getResizeSize(ImageInterface $image): SizeInterface - { - return $this->resizeGeometrically($this->getCropSize($image)) - ->toWidth($this->target->getWidth()) - ->toHeight($this->target->getHeight()) - ->scale(); - } -} diff --git a/src/Drivers/Imagick/Modifiers/CropResizeModifier.php b/src/Drivers/Imagick/Modifiers/CropResizeModifier.php new file mode 100644 index 00000000..6e8d1568 --- /dev/null +++ b/src/Drivers/Imagick/Modifiers/CropResizeModifier.php @@ -0,0 +1,45 @@ +crop = $crop; + $this->resize = $resize; + $this->position = $position; + } + + public function apply(ImageInterface $image): ImageInterface + { + $shouldCrop = $this->crop != $image->getSize(); + + foreach ($image as $frame) { + if ($shouldCrop) { + $frame->getCore()->cropImage( + $this->crop->getWidth(), + $this->crop->getHeight(), + $this->crop->getPivot()->getX(), + $this->crop->getPivot()->getY() + ); + } + + $frame->getCore()->scaleImage( + $this->resize->getWidth(), + $this->resize->getHeight() + ); + } + + return $image; + } +} diff --git a/src/Drivers/Imagick/Modifiers/ResizeModifier.php b/src/Drivers/Imagick/Modifiers/ResizeModifier.php deleted file mode 100644 index bcccd01f..00000000 --- a/src/Drivers/Imagick/Modifiers/ResizeModifier.php +++ /dev/null @@ -1,36 +0,0 @@ -getResizeSize($image); - $crop = $this->getResizeSize($image); - $shouldCrop = $crop != $image->getSize(); - foreach ($image as $frame) { - if ($shouldCrop) { - $frame->getCore()->cropImage( - $crop->getWidth(), - $crop->getHeight(), - $crop->getPivot()->getX(), - $crop->getPivot()->getY() - ); - } - - $frame->getCore()->scaleImage( - $resize->getWidth(), - $resize->getHeight() - ); - } - - return $image; - } -}