为什么将带有 exif 中位置数据的照片上传到服务器如此困难?我无法解决这个问题。每当我将照片发送到服务器时,它的所有位置信息都会从照片中删除。
我尝试使用两者从 UIImagePickerController 获取 UIImage
NSURL *url = [info objectForKey:UIImagePickerControllerReferenceURL];
还有 UIImagePickerControllerOriginalImage。
请有人帮助我
为什么将带有 exif 中位置数据的照片上传到服务器如此困难?我无法解决这个问题。每当我将照片发送到服务器时,它的所有位置信息都会从照片中删除。
我尝试使用两者从 UIImagePickerController 获取 UIImage
NSURL *url = [info objectForKey:UIImagePickerControllerReferenceURL];
还有 UIImagePickerControllerOriginalImage。
请有人帮助我
要保留 exif 信息,您需要使用原始数据,而不仅仅是 UIImage。您可以从 ALAsset 的 defaultRepresentation 中获取它,如下所示:
ALAssetRepresentation* representation = [myAsset defaultRepresentation];
int size = representation.size;
NSMutableData* data = [[NSMutableData alloc]initWithCapacity:size];
void* buffer = [data mutableBytes];
[representation getBytes:buffer fromOffset:0 length:size error:nil];
data = [NSMutableData dataWithBytes:buffer length:size];
我现在不在 xcode 附近进行测试,但它应该可以工作。
您可以使用它CLLocation
来获取当前位置。在将图像上传到服务器时,您需要通过获取当前位置CLLocationManager
并将此位置参数更新到服务器与捕获的图像。