diff --git a/src/Drivers/Gd/Modifiers/SliceAnimationModifier.php b/src/Drivers/Gd/Modifiers/SliceAnimationModifier.php index edc7346f..c1fcbb3d 100644 --- a/src/Drivers/Gd/Modifiers/SliceAnimationModifier.php +++ b/src/Drivers/Gd/Modifiers/SliceAnimationModifier.php @@ -5,6 +5,7 @@ declare(strict_types=1); namespace Intervention\Image\Drivers\Gd\Modifiers; use Intervention\Image\Drivers\DriverSpecialized; +use Intervention\Image\Exceptions\AnimationException; use Intervention\Image\Interfaces\ImageInterface; use Intervention\Image\Interfaces\ModifierInterface; @@ -16,6 +17,10 @@ class SliceAnimationModifier extends DriverSpecialized implements ModifierInterf { public function apply(ImageInterface $image): ImageInterface { + if ($this->offset >= $image->count()) { + throw new AnimationException('Offset is not in the range of frames.'); + } + $image->core()->slice($this->offset, $this->length); return $image; diff --git a/src/Drivers/Imagick/Modifiers/SliceAnimationModifier.php b/src/Drivers/Imagick/Modifiers/SliceAnimationModifier.php index 91996146..b33cc19e 100644 --- a/src/Drivers/Imagick/Modifiers/SliceAnimationModifier.php +++ b/src/Drivers/Imagick/Modifiers/SliceAnimationModifier.php @@ -5,6 +5,7 @@ declare(strict_types=1); namespace Intervention\Image\Drivers\Imagick\Modifiers; use Intervention\Image\Drivers\DriverSpecialized; +use Intervention\Image\Exceptions\AnimationException; use Intervention\Image\Interfaces\ImageInterface; use Intervention\Image\Interfaces\ModifierInterface; @@ -16,6 +17,10 @@ class SliceAnimationModifier extends DriverSpecialized implements ModifierInterf { public function apply(ImageInterface $image): ImageInterface { + if ($this->offset >= $image->count()) { + throw new AnimationException('Offset is not in the range of frames.'); + } + $image->core()->slice($this->offset, $this->length); return $image;