isFile($input)) { throw new DecoderException('Unable to decode input'); } try { $imagick = new Imagick(); $imagick->readImage($input); } catch (ImagickException) { throw new DecoderException('Unable to decode input'); } // decode image $image = parent::decode($imagick); // set file path on origin $image->origin()->setFilePath($input); // extract exif data for the appropriate formats if (in_array($imagick->getImageFormat(), ['JPEG', 'TIFF', 'TIF'])) { $image->setExif($this->extractExifData($input)); } return $image; } }