2013-10-02 3 views
0

Мне нужно установить значение направления при захвате изображения с камеры в теге внутри изображения. Я стараюсь, например:установить азимут с изображением Exif на изображении

exif.setAttribute("GPSImgDirectionRef","T"); 

    exif.setAttribute("GPSImgDirection","142.2"); 

не имеет успеха.

Любая идея?

Thks.

+0

Не могли бы вы вставить некоторый log stacktrace или код или любые ошибки, чтобы указать, как он не работает? thx – dumbfingers

+0

ss1271, ошибка не появляется, но данные Exif недействительны и не выходят (см. ссылку [this] (http://developer.android.com/reference/android/media/ExifInterface.html)) – user4056

ответ

0

я пришел в качестве решения для этой проблемы в последнее время, если кто-то нуждается в нем:

По ExifInterfacedocumentation устанавливается атрибут с помощью тега TAG_GPS_IMG_DIRECTION ожидает «рациональное» значение. Но, насколько я понял, это исходный код, он сначала проверяет вставленное значение, проверяя, есть ли в строке символ «/», и после этого получают числа до и после «/», чтобы сгенерировать двойное значение, и просто, когда он может быть преобразован в двойное значение, этот атрибут будет добавлен в файл изображения.

В основном, чтобы заставить его работать, вместо того, чтобы посылать двойное значение в качестве вашего атрибута, вам нужно отправить часть.

В качестве предложения, сделать что-то из double можно легко с помощью Apache Commons Math Lib - Fraction. Это было бы примерно так:

Fraction azimuthAsFraction = new Fraction(azimuthAsDouble); 
exif.setAttribute(TAG_GPS_IMG_DIRECTION, String.valueOf(azimuthAsFraction)); 

Таким образом, ваше азимутальное значение должно быть добавлено к метаданным файла изображения.

Смежные вопросы