2011-09-03 65 views
1

我有一个NSMutableData,其中包含要保存在设备库中的JPEG。将表示图像的NSMutableData保存到iPhone照片库

我可以将它转换成UIImage,但它会丢失EXIF数据,所以应该避免UIImaes。

编辑,以反映我想

我使用iphone-exif library编辑照片的元数据在我的主束来完成。我想要得到的图像保存在照片库

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"P1080330" ofType:@"JPG"]; 
NSData *uiJpeg = [NSData dataWithContentsOfFile:filePath]; 
EXFJpeg* jpegScanner = [[EXFJpeg alloc] init]; 
[jpegScanner scanImageData: uiJpeg]; 
NSLog(@" EXIF_Make %@ ", [ jpegScanner.exifMetaData tagValue: [NSNumber numberWithInt:EXIF_Make]]); // OUTPUTS PANASONIC 

// Change camera maker to FairyGodmother 
[jpegScanner.exifMetaData addTagValue: @"FairyGodmother" forKey:[NSNumber numberWithInt:EXIF_Make]]; 

NSMutableData *newImageData = [[NSMutableData alloc] init]; 
[jpegScanner populateImageData:newImageData]; 

// NOW I HAVE THE NSMUTABLEDATA CONTAINGING MY IMAGE WITH ALL MY EXIF DATA. HOW DO I PUT IT TO THE PHOTO LIBRARY? 

回答

2

UIImageWriteToSavedPhotosAlbum(这需要一个UIImage)是唯一的记录就我所知,在设备的照片库中获取图像的路径。

您对“丢失EXIF数据”有什么担忧?你在说什么方向? (UIImage应该照顾你。)或其他EXIF数据?

您可以获得图像的唯一方法的照片库也是作为一个UIImage,所以我不知道你通过将原始JPEG流推入库中获得什么。

+0

我正在讨论Jpeg可以包含的所有EXIF数据:方向,位置数据,曝光时间,使用的软件,版权......它看起来像是UIImage去除所有数据,这就是为什么我想避免使用它。根据你的说法,这是不可能的:\ – Marc

-1

写一个文件使用:

[yourImage writeToFile:filePath atomically:YES]; 

[]的

+0

除非你可以直接写入iOS照片库的沙箱,这是你不能的,这是行不通的。 – Abizern