2012-02-23 41 views
0

我現在正在用UIImagePicker掙扎。如何在IOS中保存新的令牌照片

我已閱讀文檔,但似乎不提及如何保存新標記照片,我的意思是將它保存到我的應用程序中的自己的文檔中。

事實上,有一個「照片」屬性,在我的核心數據實體,

如此,「照片」應該只是一個的NSString保存真實照片的文件路徑,對不對?

但如何保存該照片並獲取其正確的文件路徑?

我對NSFilePath或類似的東西一無所知,希望有人教我一點點。

非常感謝!

回答

0

你可能知道如何呈現的圖像拾取:

UIImagePickerController *picker = [[UIImagePickerController alloc] init]; 
picker.delegate = self; 
picker.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypePhotoLibrary]; 
[viewController presentModalViewController:picker animated:YES]; 

隨着上述的viewController實現UIImagePickerControllerDelegate,並確保你實現這個功能:

- (void)imagePickerController:(UIImagePickerController *)returnedPicker didFinishPickingMediaWithInfo:(NSDictionary *)info 

- (void)imagePickerControllerDidCancel:(UIImagePickerController *)returnedPicker 

第一種方法在用戶選擇照片時調用。在這種方法中你使用的圖像:

UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage]; 

爲了寫這你可以把它一個JPEG或PNG文件。如果一個JPEG你可以這樣做:

[UIImageJPEGRepresentation(image, 1.0) writeToFile:filename atomically:YES]; 

你只需要設置文件名。

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *docsDir = [paths objectAtIndex:0]; 
NSString *filename = [docsDir stringByAppendingPathComponent:@"myFilename.jpg"]; 

要獲取圖像回一個UIImage你這樣做:

NSData *data = [NSData dataWithContentsOfFile:filename; 
if(data != nil) 
    UIImage *image = [UIImage imageWithData:data]; 
+0

非常感謝!這是非常具體的,所以文件名只是一個NSString?當我需要取回照片時,我還將文件名用作NSString,而不是像/ document/resource /或類似的東西考慮照片的文件路徑? – 2012-02-24 05:28:27

+0

添加了幾行來解釋 - 是的,在這種情況下它只是一個NSString,但是您需要以文檔目錄爲前綴。 – Tonester 2012-02-24 09:16:27

+0

再次感謝!這對我非常有幫助! – 2012-02-24 09:25:17

相關問題