move_uploaded_file — запретить ротацию/игнорировать данные exif

работаю над функцией загрузки изображений для моей пользовательской CMS.

Я выполнил эту функцию, но у меня есть изображение при загрузке изображений с мобильных устройств. Пока тестировал только на IOS, но проблема в следующем:

Если пользователь выбирает снимок и делает это в портретной ориентации, при сохранении изображение поворачивается на -90 градусов.

Зато в пейзаже нормально. После некоторых исследований я обнаружил, что он использует данные exif из изображения и смотрит на вращение. Есть ли способ игнорировать эту информацию и сохранить изображение в том виде, в котором оно было снято?

Используя класс для загрузки изображений, который я нашел на GitHub, он называется пуленепробиваемым:

https://github.com/samayo/bulletproof

Ссылка на настоящий класс:

https://github.com/samayo/bulletproof/blob/master/src/bulletproof.php

И это часть загрузки из этого:

$moveUploadedFile = move_uploaded_file($fileToUpload["tmp_name"], $this->uploadDir . "/" . $newFileName);

Спасибо, Крейг.


person Lovelock    schedule 10.09.2014    source источник


Ответы (1)


Этот класс PHP не применяет поворот изображения. Поиск imagerotate() завершается неудачей. Так что это не связано с PHP, и вы можете убедиться в этом, протестировав загрузку изображения с другого клиента, отличного от iOS.

Затем вы можете узнать, есть ли в iOS настройка для отправки собственного неизмененного изображения или вам нужно применить некоторую коррекцию «поворота» на стороне устройства iOS, чтобы получить правильный поворот перед отправкой. Другими словами: я считаю, что изображение преобразуется на стороне устройства IOS, прежде чем изображение будет отправлено.

Изображение iOS PNG, повернутое на 90 градусов

альбомные фотографии для iOS4 в электронном письме

person Jens A. Koch    schedule 10.09.2014