@lexstile

Как правильно работать с ориентацией фото на php?

Делаю загрузку аватара в своем приложении, но столкнулся с проблемами некоторых фото.
Они имеют отличную ориентацию от той, что нужна была мне.

Начал копать, наткнулся на:
$image = imagecreatefromstring(file_get_contents($_FILES['image_upload']['tmp_name']));
$exif = exif_read_data($_FILES['image_upload']['tmp_name']);
if(!empty($exif['Orientation'])) {
    switch($exif['Orientation']) {
        case 8:
            $image = imagerotate($image,90,0);
            break;
        case 3:
            $image = imagerotate($image,180,0);
            break;
        case 6:
            $image = imagerotate($image,-90,0);
            break;
    }
}


Далее столкнулся с проблемой, что у меня некоторые фото начали поворачиваться не в ту сторону.
Немного покопав, обнаружил у них ориентацию 6.
exif-orientation-values.jpg?scale.option=fill&scale.width=512&scale.height=252

Смотрю на код, который взял в учебнике php и вижу, что было бы логично повернуть по часовой стрелке, что и делает функция imagerotate в шестом кейсе (отрицательный угол, как я понял, и должен обеспечивать поворот по часовой стрелке).

Что я упустил? Почему у меня идет отображение вверх ногами?
  • Вопрос задан
  • 204 просмотра
Пригласить эксперта
Ваш ответ на вопрос

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

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