Неправильная ориентация Jcrop от загрузки Iphone, как я могу это сделать?

У меня есть сайт с моим инструментом jCrop, который создает этот поток:

пользователи загружают фотографии -> они обрезают его -> они загружают его на моем сервере

Проблемы возникают, когда я пытаюсь загрузить фотографию с камеры iphone. 1- Если я загружаю изображение с iphone, он выглядит правильно ориентированным в режиме предварительного просмотра / обрезки, а затем после загрузки php я вижу результат в неправильной ориентации.

2- Если я загружаю снимок, сделанный с помощью iphone с помощью компьютера, изображение выглядит неправильно ориентированным (вертикальная фотография поворачивается на 90 градусов) в режиме предварительного просмотра / обрезки.

Я попытался удалить exif с php, но проблема остается, потому что неправильная ориентация управляется exif и JCrop. Это мой Jcrop init:

// initialize Jcrop $('#preview').Jcrop({ minSize: [167, 125], // min crop size maxSize: [1500, 1125], // max crop size// min crop size aspectRatio : 500/375, // keep aspect ratio 1:1 bgFade: true, // use fade effect bgOpacity: .3, // fade opacity boxWidth: 600, onChange: updateInfoFoto, onSelect: updateInfoFoto }, function(){ // use the Jcrop API to get the real image size var boundsFoto = this.getBounds(); boundxFoto = boundsFoto[0]; boundyFoto = boundsFoto[1]; // Store the Jcrop API in the jcrop_api_foto variable jcrop_api_foto = this; }); 

Есть ли способ решить эту проблему, связанную с iphone? Если нет, есть другой инструмент для обрезки, который не влияет на эту ошибку?

One Solution collect form web for “Неправильная ориентация Jcrop от загрузки Iphone, как я могу это сделать?”

iPhones управляют изображениями в браузере с использованием данных ориентации exif. Поэтому, если у вас есть изображение, которое физически находится в ландшафтном режиме (например, на сервере, ширина> высота), но изображение было снято с помощью iphone в портретной ориентации, оно будет использовать тег для поворота изображения в браузере на iphone. (в настольных браузерах это не произойдет)

Это вызывает проблемы для jCrop.

Поскольку jCrop не имеет кода для этого (хотя, вероятно, это и должно быть), я использовал решение, в котором сначала загружаю изображение на сервер, исправляю поворот и обновляю exif с использованием кода на стороне сервера.

Таким образом, поток загрузки выглядит следующим образом:

  1. пользователь выбирает и загружает фото на сервер как есть
  2. когда загрузка отправляется, я создаю копию изображения, которое физически поворачивается в соответствии с ориентацией, указанной в данных exif, и обеспечивает соответствующее обновление данных exif. (например, если exif первоначально указывал поворот на 90 градусов по часовой стрелке, я делаю это вращение и обновляю exif так, чтобы он больше не указывал на это вращение)
  3. когда страница перезагружается после отправки, я показываю рабочую область jCrop с новой версией изображения.

Конечно, это работает, только если данные ориентации exif из загруженного изображения точны.

  • push-уведомление не принимается в iOS с использованием тем в firebase (FCM)
  • Как отправить Json и Image на сервер для ios
  • Emoji для кодирования JSON, сообщение на веб-сервер
  • Как разрешить доступ только к моей базе данных MySQL из приложения iOS? (Использование webapp в качестве шлюза для db)
  • AFNetworking Загрузка изображения
  • Комбинировать ios (Push-уведомление) и андроид (GCM) API (webservice) для уведомления
  • Использование адресного объявления Charles и SSL Apple
  • Как шифровать AES 256 CBC в iOS Swift 3 как метод larvel encrypt ()
  • Уведомление об отправке ios с помощью firebase
  • Сетевое соединение было потеряно NSURLConnection
  • Отправка запроса POST локальному хосту, данные, полученные, но не отображающиеся на веб-странице
  • Interesting Posts

    Переменная не изменена в пользовательском инициализаторе

    Библиотека xcode не найдена для -lobjc

    Равномерно разворачивайте кнопки горизонтально по экрану, используя автозапуск. Неравномерное расстояние между ними

    Ошибка автоматической компоновки с заголовком раздела UITableView

    Как обрабатывать размер шрифта iPhone 6S Plus?

    Параллельные запросы обновления маркера доступа OAuth2 с помощью Swift p2 / OAuth2

    Повернуть UIImageView по часовой стрелке

    Версия для iOS5 для раскадровки Facebook

    Блоки анимации UIView против CAAnimation

    Не удалось создать каталог журнала

    Изображение неправильно заполняет UIImageView в TableView

    Получить консольный вывод Xcode для входа в файл

    Получить ширину / рамку всего UITableViewCell

    Проблема с категоризацией черного цвета при переключении налево

    Пройдите через данные CMSampleBufferRef к разъему аудиовыхода

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.