在我的应用程序中,我创建了一个自定义相机视图控制器,我想将图像保存在特定路径下的文档文件夹中,并带有图像的位置信息。 这就是我现在保存图像的方式:
NSData* originalImageJpegRepresentation = UIImageJPEGRepresentation(self.cameraSnapshotImage, 90);
[originalImageJpegRepresentation writeToFile:[self.targetDirectory stringByAppendingPathComponent:filename] atomically:YES];
但我读完后,图片中的exif数据中没有包含位置信息。
当我希望将其保存在CLLocation*
对象中时,我确实有地理位置。
如何将其坐标添加到保存的图像?
提前致谢
答案 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