Проблема с чтением метаданных JPEG (ориентация)

У меня есть изображение в формате JPEG, которое было снято на iphone. На моем настольном ПК (Windows Photo Viewer, Google Chrome и т. Д.) Ориентация неправильная.

Я работаю над веб-приложением ASP.NET MVC 3, в которое мне нужно загрузить фотографии (в настоящее время использую plupload).

У меня есть код на стороне сервера для обработки изображений, включая чтение данных EXIF.

Я пробовал читать поле PropertyTagOrientation в метаданных EXIF ​​(используя GDI - Image.PropertyItems ), но поле отсутствует.

Значит, это либо какие-то конкретные метаданные iphone, либо другие метаданные.

Я использовал другой инструмент, например Aurigma Photo Uploader, и он считывает метаданные. данные правильно и поворачивает изображение. Как это сделать?

Кто-нибудь знает, какие еще метаданные JPEG могут содержать информацию, необходимую для того, чтобы знать, что их нужно повернуть, что используется Aurigma?

Вот код, который я использую для прочтите данные EXIF:

var image = Image.FromStream(fileStream);

foreach (var prop in image.PropertyItems)
{
   if (prop.Id == 112 || prop.Id == 5029)
   {
      // do my rotate code - e.g "RotateFlip"
      // Never get's in here - can't find these properties.
   }
}

Есть идеи?

51
задан RPM1984 2 June 2011 в 14:15
поделиться