【发布时间】:2010-10-11 14:36:12
【问题描述】:
是否有可能在 iPhone 应用程序中从使用 iPhone 相机拍摄的照片中提取位置信息(我想是地理编码)?
如果没有 API 调用来执行此操作,是否有任何已知的方法来解析数据字节以提取信息?我可以自己滚动的东西?
【问题讨论】:
标签: iphone cocoa-touch geolocation geocoding
是否有可能在 iPhone 应用程序中从使用 iPhone 相机拍摄的照片中提取位置信息(我想是地理编码)?
如果没有 API 调用来执行此操作,是否有任何已知的方法来解析数据字节以提取信息?我可以自己滚动的东西?
【问题讨论】:
标签: iphone cocoa-touch geolocation geocoding
很遗憾,没有。
问题是这样的;
一个 jpeg 文件由几个部分组成。对于这个问题,我们感兴趣的是图像数据和 exif 数据。图像数据是图片,exif 数据是存储地理编码、快门速度、相机类型等信息的地方。
一个 UIImage(和 CGImage)只包含图像数据,没有标签。
当图像选择器选择图像(从库或相机中)时,它会返回 UIImage,而不是 jpeg。这个 UIImage 是从 jpeg 图像数据创建的,但是 jpeg 中的 exif 数据被丢弃了。
这意味着这些数据根本不在 UIImage 中,因此无法访问。
【讨论】:
实际上,我认为选择的答案是错误的。嗯,没有错。它所说的一切都是正确的,但有办法绕过这个限制。
UIImagePickerController 传递一个字典以及它返回的UIImage。其中一个键是UIImagePickerControllerMediaURL,它是“电影的文件系统 URL”。然而,正如here 所指出的,在较新的 iOS 版本中,它也会返回图像的 url。将其与@Jasper 提到的exif library 结合起来,您或许可以从照片中提取地理标签。
我没有尝试过这种方法,但正如@tomtaylor 所提到的,这必须以某种方式成为可能,因为有一些应用程序可以做到这一点。 (例如Lab)。
【讨论】:
"assets-library://asset/asset.jpg?id=2317&ext=jpg"