| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- <?php
- namespace Intervention\Image\Commands;
- use Intervention\Image\Exception\NotReadableException;
- use Intervention\Image\Exception\NotSupportedException;
- class ExifCommand extends AbstractCommand
- {
- /**
- * Read Exif data from the given image
- *
- * Note: Windows PHP Users - in order to use this method you will need to
- * enable the mbstring and exif extensions within the php.ini file.
- *
- * @param \Intervention\Image\Image $image
- * @return boolean
- */
- public function execute($image)
- {
- if (!function_exists('exif_read_data')) {
- throw new NotSupportedException(
- "Reading Exif data is not supported by this PHP installation."
- );
- }
- $key = $this->argument(0)->value();
- // try to read exif data from image file
- try {
- $data = @exif_read_data($image->dirname . '/' . $image->basename);
- if (!is_null($key) && is_array($data)) {
- $data = array_key_exists($key, $data) ? $data[$key] : false;
- }
- } catch (\Exception $e) {
- throw new NotReadableException(
- sprintf(
- "Cannot read the Exif data from the filename (%s) provided ",
- $image->dirname . '/' . $image->basename
- ),
- $e->getCode(),
- $e
- );
- }
- $this->setOutput($data);
- return true;
- }
- }
|