Как повернуть изображения JPEG на основе метаданных ориентации?

У меня есть код сервера, который генерирует эскизы при загрузке изображения. Проблема в том, что при съемке изображения и повороте камеры / устройства эскизы поворачиваются, даже если сами полноразмерные изображения отображаются в правильной ориентации в любом программном обеспечении для просмотра изображений. Это происходит только с jpgs.

Используя предварительный просмотр в OSX, я вижу, что внутри jpgs есть метаданные ориентации. Когда я использую ImageTools (подключаемый модуль Grails) для создания эскиза, метаданные EXIF ​​отсутствуют в эскизе, поэтому эскизы отображаются повернутыми.

В ходе автономных разговоров я узнал, что, хотя метаданные EXIF ​​относительно легко читать, но нет простого способа их записать, именно поэтому данные теряются при создании эскиза jpg.

Кажется, у меня есть два варианта:

  1. Использовать ImageMagick для создания эскизов. Обратной стороной является необходимость установки дополнительных программ на наших серверах.
  2. Прочтите данные EXIF ​​Ориентация - это код и соответствующим образом поверните миниатюру.

Кто-нибудь знает какие-либо другие варианты?

61
задан RealSkeptic 14 July 2015 в 04:11
поделиться