Поворот изображения путем обновления его метаданных или информации EXIF - PullRequest
1 голос
/ 23 августа 2011

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

Ответы [ 2 ]

0 голосов
/ 23 августа 2011

Из того, что я понимаю, вы не хотите на самом деле преобразовывать изображение и вращать его пиксельные данные, а вместо этого "отображать" его вращающиеся.

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

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

Действительно хитрый момент будет отображать его в браузере.

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

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

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

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

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

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

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

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

Вы можете либо

  • Повернуть их вручную с помощью кода на стороне сервера (фактически манипулируя пикселями - возможно, для загрузки этого нужны библиотеки, возможно, встроенныев .net)
  • Используя Flash, поверните его (на самом деле, я думаю, что flash может читать EXIF ​​напрямую)
  • Использование HTML-холста для вращения (возможно, с помощью jquery rotate или чего-то подобного)
0 голосов
/ 23 августа 2011

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

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

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

...