2011-09-03 68 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