Вращение изображения путем обновления его метаданных или информации EXIF

Я работаю над утилитой для обработки изображений. Требование состоит в том, чтобы повернуть изображение, обновив его метаданные (информацию exif). Я пытался сделать то же самое, но не удалось. Пожалуйста, предложите несколько указателей?


person Anil C    schedule 23.08.2011    source источник
comment
я почти уверен, что вы не можете повернуть изображение, просто изменив его данные exif.   -  person Muad'Dib    schedule 23.08.2011
comment
Согласитесь, EXIF ​​— это просто метаданные. Это не влияет на то, как изображение отображается пользователю, если программа открытия специально не ищет его.   -  person Kevin Kalitowski    schedule 23.08.2011
comment
@ Mudd'Dib - Есть идеи, как это можно сделать?   -  person Anil C    schedule 23.08.2011
comment
@Kevin - На самом деле изображения сняты цифровой камерой. Теперь при загрузке на сервер я хочу повернуть их в фактическую ориентацию, чтобы пользователь мог видеть изображения в правильной ориентации. Любая идея, как этого можно достичь?   -  person Anil C    schedule 23.08.2011
comment
Меня это заинтриговало, и я не знал, что данные EXIF ​​содержат информацию об ориентации. Это описывает это очень интересно: impulseadventure.com/photo/exif-orientation.html   -  person Alex KeySmith    schedule 23.08.2011


Ответы (2)


Это нужно будет сделать с помощью ручного процесса, а не данных EXIF.

Под ручным я подразумеваю перемещение пикселей. Вы можете найти в Интернете примеры того, как это сделать, используя вспомогательные классы, возможно, .NET Framework, в зависимости от того, на какой платформе вы разрабатываете.

Пример: http://www.switchonthecode.com/tutorials/csharp-tutorial-image-editing-rotate

person Kevin Kalitowski    schedule 23.08.2011

Насколько я понимаю, вы не хотите на самом деле преобразовывать изображение и вращать его пиксельные данные, а вместо этого «отображать» его повернутым.

Я никогда не думал об этом раньше и не знаком с EXIF ​​​​и т. Д. Но мне пришло в голову.

Отображение ориентации в браузере

Самое сложное — это отобразить его в браузере.

Вот несколько запросов на добавление функций, обсуждающих соблюдение ориентации в браузерах:

firefox: https://bugzilla.mozilla.org/show_bug.cgi?id=298619< /а>

chrome: http://code.google.com/p/chromium/issues/detail?id=56845

Я не читал эти запросы полностью, поэтому я не уверен точно в их статусе, но может быть интересно прочитать для вас.

Получение данных EXIF

Если браузер не поддерживает встроенную ориентацию EXIF ​​(что, вероятно, не поддерживает), сначала вам нужно получить данные EXIF, вы можете сделать это на стороне клиента, просмотрев необработанные двоичные данные, извлекаемые с сервера. ..

Но я предполагаю, что сделать это на стороне сервера было бы намного проще.

Вот библиотека ac# для получения данных EXIF ​​http://www.codeproject.com/KB/graphics/exifextractor.aspx Правда, я его не нашел, это обсуждалось здесь: Как получить данные EXIF ​​из файла с помощью C#

Вы могли бы либо

  • Поверните его вручную с помощью кода на стороне сервера (фактически манипулируя пикселями - вероятно, для этого существует множество библиотек, вероятно, встроенных в .net)
  • Используя Flash, поверните его (на самом деле, я думаю, что Flash может напрямую читать EXIF)
  • Использование холста HTML для поворота (возможно, с помощью поворота jquery или чего-то подобного)
person Alex KeySmith    schedule 23.08.2011