使用gps坐标将UIImage写入路径

时间:2015-06-01 16:48:10

标签: ios objective-c gps uiimage

在我的应用程序中,我创建了一个自定义相机视图控制器,我想将图像保存在特定路径下的文档文件夹中,并带有图像的位置信息。 这就是我现在保存图像的方式:

NSData* originalImageJpegRepresentation = UIImageJPEGRepresentation(self.cameraSnapshotImage, 90);
[originalImageJpegRepresentation writeToFile:[self.targetDirectory stringByAppendingPathComponent:filename] atomically:YES];

但我读完后,图片中的exif数据中没有包含位置信息。

当我希望将其保存在CLLocation*对象中时,我确实有地理位置。

如何将其坐标添加到保存的图像?

提前致谢

2 个答案:

答案 0 :(得分:1)

创建NSObject的自定义子类,然后使用NSCoding手动存储和检索图像数据和位置数据。

@interface MyImageData : NSObject <NSCoding>

@property (nonatomic, strong) UIImage *image;
@property (nonatomic, strong) CLLocation *location;

@end

@implementation MyImageData

...

#pragma mark NSCoding

- (void) encodeWithCoder:(NSCoder *)encoder {
    NSData *imageData = UIImageJPEGRepresentation(_image, 90);
    [encoder encodeObject:originalImageJpegRepresentation forKey:@"image"];
    [encoder encodeObject:_location forKey:@"location"];
}

- (id)initWithCoder:(NSCoder *)decoder {
    self = [super init];
    if (self) {
        NSData *imageData = [decoder decodeObjectForKey:@"image"];
        _image = = [[UIImage alloc] initWithData:imageData];
        _location = [decoder decodeObjectForKey:@"location"];
    }
    return self;
}

然后,您可以将此类的实例保存到文件,它将包含两个数据项。

MyImageData *myImageData = ...

[myImageData writeToFile:filePath atomically:YES];

答案 1 :(得分:0)

您需要使用ALAssetsLibrary使用writeImageToSavedPhotosAlbum方法保存gps数据。阅读here