@ar2rsoft
PHP-developer

Как повернуть фото на основании данных из EXIF правильно и один раз?

Всех приветствую!

На одинаковых версиях PHP, по разному работают функции imagecreatefromstring и imagejpeg.

Например, есть код:
if (move_uploaded_file($tmp_filename, $fullpath)) {
    $image = imagecreatefromstring(file_get_contents($fullpath));

    # rotate
    $exif = exif_read_data($fullpath);
    $angles= array(8 => 90, 3 => 180, 6 => -90);
    if(!empty($exif['Orientation']) && isset($angles[$exif['Orientation']])) {
        $image = imagerotate($image, $angles[$exif['Orientation']], 0);
    }
    # rotate

    imagejpeg($image, $fullpath);
}


Если запустить этот пример и загрузить изображение с данными в exif, то на локальном сервере на версии PHP 7.3 изображение загрузиться как есть, на сервере клиента (PHP 7.3) оно повернеться на нужный угол.
Если все строки между комментами "#rotate" убрать, то на локальном изображение поворачивается само, на сервере клиента - ничего не происходит.

Вопрос в том, как определить, что оно повернется само и не поворачивать повторно если в этом нет необходимости? Спасибо
  • Вопрос задан
  • 409 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы