3

我使用 AVFoundation 在 UIView 中捕获图像并向其添加注释。现在,我需要获取捕获图像的地理位置。我当前的代码片段如下所示。元数据没有地理位置。也许我将不得不使用 CLLocation?请尽快指导我。

[stillImageOutput captureStillImageAsynchronouslyFromConnection:videoConnection completionHandler: ^(CMSampleBufferRef imageSampleBuffer, NSError *error)
 {
     CFDictionaryRef metadataDict = CMCopyDictionaryOfAttachments(NULL, imageSampleBuffer, kCMAttachmentMode_ShouldPropagate);
     NSMutableDictionary *metadata = [[NSMutableDictionary alloc] initWithDictionary:(__bridge NSDictionary*)metadataDict];
     CFRelease(metadataDict);
     NSLog(@"%@",metadata);
     CFDictionaryRef exifAttachments = CMGetAttachment( imageSampleBuffer, kCGImagePropertyExifDictionary, NULL);
     if (exifAttachments)
     {
         // Do something with the attachments.
     }
     else
         NSLog(@"no attachments");

     NSData *imageData = [AVCaptureStillImageOutput jpegStillImageNSDataRepresentation:imageSampleBuffer];
     [captureSession stopRunning];
     [imageData writeToFile:path atomically:YES];
 }];
4

1 回答 1

0

据我所知,您必须包装自己的元数据字典并将其添加到图像数据中。

这是一个类扩展(由 Gustavo 提供,链接如下),它处理将 EXIF 和地理位置数据写入使用 AVCaptureStillImageOutput api 捕获的照片:https ://github.com/gpambrozio/GusUtils/blob/master/GusUtils/NSMutableDictionary+ImageMetadata.m

此外,这里是 Gustavo 解释实现的文章:http: //blog.codecropper.com/2011/05/adding-metadata-to-ios-images-the-easy-way/

高温高压

于 2015-04-24T17:07:18.160 回答