使用EXIF /地理标记信息更新内存中的iOS UIImage

时间:2012-01-29 06:14:16

标签: ios image uiimage exif

我正在尝试使用地理标记信息更新UIImage。我查看了Saving Geotag info with photo on iOS4.1,这是我找到NSMutableDDictionary+ImageMetadata category的引用的地方。但是,我不想保存到相册,但要传递UIImage

以下代码似乎制作了太多的图像副本,并且需要链接所有这些框架:CoreImage,AssetsLibrary,CoreMedia,ImageIO。

UIImage - >是否有更高效的内容? CIImage - > CGImage - > UIImage可以获取设置EXIF数据所需的NSDictionary属性吗?

- (UIImage *)updateImage:(UIImage *)image location:(CLLocation *)location dateOriginal:(NSDate *)dateOriginal
{
    NSMutableDictionary *properties = [NSMutableDictionary dictionaryWithDictionary:[image.CIImage properties]];

    // uses https://github.com/gpambrozio/GusUtils   
    [properties setLocation:location];
    [properties setDateOriginal:dateOriginal];

    CIImage *tempImage = [[CIImage alloc] initWithImage:image options:properties];
    CIContext *context = [CIContext contextWithOptions:nil];    
    UIImage *updatedImage = [UIImage imageWithCGImage:[context createCGImage:tempImage fromRect:tempImage.extent]];

    return updatedImage;
}

1 个答案:

答案 0 :(得分:0)

查看libexif:http://libexif.sourceforge.net/

您可能需要使用

将图像的字节数据传递到库中
UIImageJPEGRepresentation(image, quality) bytes]