从图像中获取纬度和经度数据时遇到问题(具有地理位置详细信息)。我已导入EXIF框架,并且我使用以下代码来实现此目的:
NSData *jpegData = [UIImageJPEGRepresentation(image, 0.5) base64String];
EXFJpeg* jpegScanner = [[EXFJpeg alloc] init];
[jpegScanner scanImageData: jpegData];
EXFMetaData* exifData = jpegScanner.exifMetaData;
id latitudeValue = [exifData tagValue:[NSNumber numberWithInt:EXIF_GPSLatitude]];
id longitudeValue = [exifData tagValue:[NSNumber numberWithInt:EXIF_GPSLongitude]];
NSLog(@"Longitude: %@ Longitude: %@", latitudeValue, longitudeValue);
但它返回纬度和经度的NULL值,有人可以告诉我在上面的代码中我做错了什么吗?请帮帮我。在此先感谢!!
答案 0 :(得分:1)
您可以使用alasset框架。
ALAssetsLibrary *assetsLibrary = [[ALAssetsLibrary alloc]init];
[assetsLibrary assetForURL:photoUrl resultBlock:resultBlock failureBlock:nil];
ALAssetsLibraryAssetForURLResultBlock resultBlock = ^(ALAsset *photoAsset) {
CLLocation *location = [photoAsset valueForProperty:ALAssetPropertyLocation];
NSMutableDictionary *exifDataDict = [[NSMutableDictionary alloc] init];
if (location != nil) {
[exifDataDict setObject:[NSNumber numberWithDouble:location.coordinate.latitude] forKey:@"latitude"];
[exifDataDict setObject:[NSNumber numberWithDouble:location.coordinate.longitude] forKey:@"longitude"];
}
}
答案 1 :(得分:0)
我有一次类似的问题。在处理它时,我得到的印象是UIImage
剥离了所有或部分EXIF数据。从文件,边界或webservice等读取图像数据时,EXIFJpeg
对我来说很好。但是当我将图像作为UIImage
对象存储在内存中时,我无法提取任何理由的EXIF使用UIImageJPEGRepresentaiion
从该数据中获取图像数据和EXIF。
我不会在血液中签名,但这是我的印象,使用文件中的“原始”数据确实对我有用。所以我从某个服务器收到了该文件,然后提取了EXIF,包括地理标记(如果有的话),之后创建了UIImage
。