我需要获取iOS设备相机拍摄的图像的GPS坐标。我不关心相机胶卷图片,只想获取UIImagePickerControllerSourceTypeCamera所拍摄的照片。我已经阅读了许多stackoverflow答案,例如从UIImage - UIImagePickerController获取Exif数据,但这些答案要么假设您使用AssetsLibrary框架(该框架似乎无法处理相机图像),要么使用CoreLocation从应用程序本身获取纬度/经度,而不是从图像获取。使用CoreLocation不是选项。这不会在按下快门按钮时给我坐标。(使用基于CoreLocation的解决方案,您需要在打开相机视图之前或之后记录坐标,当然,如果设备移动,坐标将错误。此方法应适用于静止设备。) 我只需支持iOS5,因此不需要支持旧设备。这也是商业产品,因此我不能使用http://code.google.com/p/iphone-exif/。那么,从iOS5返回的相机图像中读取GPS数据的选择是什么?目前我所能想到的就是将图像保存到相机胶卷中,然后使用AssetsLibrary,但这似乎很麻烦。谢谢!
这是我根据Caleb的答案编写的代码。
这是我根据Caleb的答案编写的代码。
UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
NSData *jpeg = UIImageJPEGRepresentation(image,1.0);
CGImageSourceRef source ;
source = CGImageSourceCreateWithData((__bridge CFDataRef)jpeg, NULL);
NSDictionary *metadataNew = (__bridge NSDictionary *) CGImageSourceCopyPropertiesAtIndex(source,0,NULL);
NSLog(@"%@",metadataNew);
我的控制台显示:
2012-04-26 14:15:37:137 ferret[2060:1799] {
ColorModel = RGB;
Depth = 8;
Orientation = 6;
PixelHeight = 1936;
PixelWidth = 2592;
"{Exif}" = {
ColorSpace = 1;
PixelXDimension = 2592;
PixelYDimension = 1936;
};
"{JFIF}" = {
DensityUnit = 0;
JFIFVersion = (
1,
1
);
XDensity = 1;
YDensity = 1;
};
"{TIFF}" = {
Orientation = 6;
};
}
没有纬度/经度。