Your IP : 216.73.216.150


Current Path : /home/e/o/l/eolienneia/www/templates/yootheme/vendor/yootheme/image/src/Image/
Upload File :
Current File : /home/e/o/l/eolienneia/www/templates/yootheme/vendor/yootheme/image/src/Image/ExifLoader.php

<?php

namespace YOOtheme\Image;

use YOOtheme\Image;

class ExifLoader
{
    public function __invoke(Image $image)
    {
        if ($image->getType() === 'jpeg' && is_callable('exif_read_data')) {
            // read exif data
            $exif = @exif_read_data($image->getFile());

            // set exif attribute
            $image->setAttribute('exif', $exif ?: []);

            // check orientation and rotate it if needed
            if (isset($exif['Orientation']) && !$image->getAttribute('resource')) {
                switch ($exif['Orientation']) {
                    case 2:
                        $image = $image->flip(true, false);
                        break;
                    case 3:
                        $image = $image->flip(true, true); // rotate 180
                        break;
                    case 4:
                        $image = $image->flip(false, true);
                        break;
                    case 5:
                        $image = $image->rotate(90)->flip(false, true);
                        break;
                    case 6:
                        $image = $image->rotate(270);
                        break;
                    case 7:
                        $image = $image->rotate(90)->flip(true, false);
                        break;
                    case 8:
                        $image = $image->rotate(90);
                        break;
                }
            }

            return $image;
        }
    }
}