iPhone - доступ к информации о местоположении с фотографии

Возможно ли в приложении для iPhone извлечь информацию о местоположении (я полагаю, это называется геокодированием) из фотографии, сделанной камерой iPhone?

Если для этого нет вызова API, существует ли какой-либо известный способ проанализировать байты данных для извлечения информации? Что-нибудь, что я могу катать самостоятельно?


person bpapa    schedule 05.03.2009    source источник
comment
решение с использованием Photo framework в iOS 8   -  person Warif Akhand Rishi    schedule 12.11.2015


Ответы (2)


К сожалению нет.

Проблема в том, что;

Файл jpeg состоит из нескольких частей. В этом вопросе нас интересуют данные изображения и данные exif. Данные изображения - это изображение, а данные exif - это место, где хранятся такие вещи, как геокодирование, выдержка, тип камеры и т. Д.

UIImage (и CGImage) содержат только данные изображения, без тегов.

Когда средство выбора изображения выбирает изображение (либо из библиотеки, либо из камеры), оно возвращает UIImage, а не jpeg. Этот UIImage создается из данных изображения jpeg, но данные exif в jpeg отбрасываются.

Это означает, что этих данных вообще нет в UIImage и, следовательно, они недоступны.

person Andrew Grant    schedule 05.03.2009
comment
Есть ли какой-нибудь известный способ проанализировать байты данных для извлечения информации? Возможно, не вызов API, а что-то, что я могу накатить самостоятельно? - person bpapa; 05.03.2009
comment
Боюсь, что нет, я объяснил ответ, чтобы объяснить почему. - person Andrew Grant; 05.03.2009
comment
Это не совсем так. Это возможно, поскольку некоторые приложения (например, Mobile Photos и PixelPipe), похоже, могут управлять этим. Однако я до сих пор не нашел образца кода. - person tomtaylor; 06.07.2009

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

UIImagePickerController передает словарь вместе с UIImage, который он возвращает. Один из ключей - это UIImagePickerControllerMediaURL, который является «URL-адресом файловой системы для фильма». Однако, как отмечено здесь, в более новых версиях iOS он также возвращает URL-адреса для изображений. Соедините это с библиотекой exif, упомянутой @Jasper и вы могли бы вытащить геотеги из фотографий.

Я не пробовал этот метод, но, как упоминал @tomtaylor, это должно быть каким-то образом, поскольку есть несколько приложений, которые это делают. (например, Lab).

person Kenny Winker    schedule 11.12.2010
comment
Когда я попробовал это (iOS 4.2), он не вернул этот ключ - просто UIImagePickerControllerMediaType, UIImagePickerControllerOriginalImage и UIImagePickerControllerReferenceURL, который был "assets-library://asset/asset.jpg?id=2317&ext=jpg" - person Alex Brown; 15.12.2010
comment
Полезно знать ... Может, это было просто в 3.2? - person Kenny Winker; 15.12.2010
comment
Я могу подтвердить, что выбор фотографии из альбома сохраненных фотографий возвращает вам только три ключа, упомянутые Алексом. При выборе с камеры, поскольку OP был заинтересован, вы не получите ни UIImagePickerControllerMediaURL, ни UIImagePickerControllerReferenceURL. - person azdev; 27.08.2011